我在Oracle上有两个表。说:
table1:
id varchar2,
name varchar2,
phone number,
age number,
a varchar2,
b varchar2,
c varchar2
table2:
z varchar2,
a varchar2,
b varchar2,
c varchar2
我应该得到table 1
的所有结果
a
上有b
,c
,table 2
的组合。
我该怎么办?
答案 0 :(得分:4)
听起来你想要NOT EXISTS
SELECT *
FROM table1 t1
WHERE NOT EXISTS (
SELECT 1
FROM table2 t2
WHERE t1.a = t2.a
AND t1.b = t2.b
AND t1.c = t2.c )
答案 1 :(得分:4)
不确定你是否想要这个:
SELECT *
FROM table1 t1
LEFT JOIN table2 t2 ON t1.a=t2.a AND t1.b=t2.b AND t1.c=t2.c
WHERE t2.z IS NULL
答案 2 :(得分:3)
您可以使用存在子句。
Select *
from table1 t1
where not exists
(select * from table2 t2
where t1.a = t2.a
and t1.b = t2.b
and t1.c = t2.c)