我想要一个应该执行数据清理任务的 SQL 代码。
我有两个表都包含一些我想比较它们的名称,并且只列出那些在表 2 中但不在表 1 中的名称。
例子:
Table 1 = A ,B,C
Table 2 = C,D,E
结果一定有D和E?
我想要一个应该执行数据清理任务的 SQL 代码。
我有两个表都包含一些我想比较它们的名称,并且只列出那些在表 2 中但不在表 1 中的名称。
例子:
Table 1 = A ,B,C
Table 2 = C,D,E
结果一定有D和E?
SELECT t2.name
FROM 2 t2
LEFT JOIN
1 t1 ON t1.name=t2.name
WHERE t1.name IS NULL
select t2.name
from t2,t1
where t2.name<>t1.name -- ( or t2.name!=t1.name)
如果 DBMS 支持它:
select name from table2
minus
select name from table1
更便携的解决方案也可能是:
select name from table2
where name not in (select name from table1)
select T2.Name
from Table2 as T2
where not exists (select * from Table1 as T1 where T1.Name = T2.Name)
请参阅这篇文章,了解不同反连接实现的性能(针对 SQL Server)。