6

我有一个存储过程,它将(或应该)记录从一个表移动到另一个表。但是我现在想创建一个程序来检查“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

基本上,我想提取不在“TableB”中但在“TableA”中的任何数字,是 LEFT JOIN 方法吗?到目前为止,我一直未能成功找到丢失的文件,并且我已经删除了一些以形成测试用例。

4

5 回答 5

12

你可以使用一个not exists

SELECT  *   
FROM TableA A  
WHERE NOT EXISTS (SELECT *      
                  FROM TableB B
                  WHERE A.NUM = B.NUM);

not in

SELECT  *   
FROM TableA A  
WHERE A.NUM not in (SELECT B.NUM
                  FROM TableB B);
于 2012-08-09T14:37:39.133 回答
3
SELECT Num from TableA
EXCEPT
SELECT Num from TableB
于 2012-08-09T14:37:58.510 回答
2
select * from tableA
where id not in (select id from tableB)

或者

select * from tableA a
left join tableB b on a.id = b.id
where b.id is null
于 2012-08-09T14:38:16.103 回答
1
select * from tableA
where id in (select id from tableB);
于 2016-11-10T10:04:56.020 回答
1
查找两个表之间的重复项
select table1.column_name, count(*) from table_name table1
内连接表名表2
ON table1.coumn_name = table2.column_name;
前任:
从用户 u 中选择 u.username
INNER JOIN src_users ud
ON u.username = ud.username;
在单个表中查找重复项
从用户组中选择用户名,count(*),用户名 count(*) >1;
于 2020-12-31T10:05:43.660 回答