比较2个表

时间:2017-02-15 11:59:39

标签: sql oracle

我有2个表,TABLE1TABLE2,我想显示搜索结果,我将检查TABLE1中名为name的列是否包含xyz,之后应与TABLE2 AUDITED_ID字段进行比较,并显示TABLE2 TABLE2字段相等的AUDITED_ID字段使用表1 ID字段,其中TABLE1 ID字段也获取名称列,它应包含xyz

查询1:

SELECT ID FROM TABLE1
UNION
SELECT AUDITED_ID FROM TABLE2
WHERE
TABLE1.NAME LIKE '%XYZ%'
AND 
TABLE1.ID = TABLE2.AUDITED_ID;

QUERY2:

SELECT ID FROM DOMAINS
WHERE NAME LIKE '%GGV%'
UNION
SELECT AUDITED_ENTITY_ID FROM AUDIT_LOGS
WHERE
DOMAINS.ID = AUDIT_LOGS.AUDITED_ENTITY_ID;

我尝试了几种方法,但它没有用,我总是收到错误信息,不知道我应该怎么开始?

1 个答案:

答案 0 :(得分:1)

您应该首先使用INNER JOIN加入这两个表 - 这将从结果集中删除您不需要的ID

然后使用WHERE条件检查您的情况

SELECT 
     t1.ID ,

     -- you can select other columns from t1 and t2 here
     t2.AUDITED_ID ,
     t1.NAME

FROM TABLE1 t1

INNER JOIN TABLE2 t2 ON t2.AUDITED_ID = t1.ID
WHERE t1.NAME LIKE '%XYZ%'