这是我的陈述
select * from table1
where col1 not in (select col2 from table2);
我想尝试(但失败了)
select t1.* from table1 t1
inner join table2 on t1.col1<> t2.col2
还有其他办法吗?
答案 0 :(得分:0)
您尚未定义t2
个对象并使用left join
。
SELECT t1.* FROM table1 t1
LEFT JOIN table2 t2 ON t2.col2 = t1.col1 WHERE t2.id IS NULL
答案 1 :(得分:0)
select t1.* from table1 t1
left join table2 t2 on t1.col1 = t2.col2
where t2.col2 is null
这是缺失记录搜索的标准实现。
答案 2 :(得分:0)
要获取table1中存在但在table2中不存在的记录,您需要left join
,而不是inner join
。
试试这个:
select t1.*
from table1 t1
left join table2 t2 on t1.col1 = t2.col2
where t2.id is null -- any non-nullable column will do, best to use pk for performance.
答案 3 :(得分:0)
如果你试图找出t2.c1中存在或不存在的t1.c1(t1 = table1,c1 = column1)的数据,那么使用流动的脚本
select t1.c1 from t1 left join t2 on t1.c1=t2.c2
另外明智的是,如果你只想找到不在t2.c2中的t1.c1数据,那么下面的脚本是完整的帮助
select t1.c1 from t1 where t1.c1 not in (select t2.c2 from t2)