查询重复值的两个表

Wil*_*iam 1 sql sql-server

我有一个存储过程,它将记录从一个表移动到另一个表.但是我现在想要创建一个过程来检查'TableA'中的数据与'TableB'中的数据

SELECT A.Num, B.Num
FROM TableA AS A 
LEFT JOIN TableB AS B ON A.Num = B.Num
WHERE B.Num IS NULL
Run Code Online (Sandbox Code Playgroud)

基本上,我想拉出任何不在'TableB'但是在'TableA'中的数字,是LEFT JOIN的方式吗?到目前为止,我一直没有找到丢失的文件,我已经删除了一些以形成测试用例.

Niv*_*vas 7

你可以使用 not exists

SELECT  *   
FROM TableA A  
WHERE NOT EXISTS (SELECT *      
                  FROM TableB B
                  WHERE A.NUM = B.NUM);
Run Code Online (Sandbox Code Playgroud)

或者not in:

SELECT  *   
FROM TableA A  
WHERE A.NUM not in (SELECT B.NUM
                  FROM TableB B);
Run Code Online (Sandbox Code Playgroud)