SQL - 检查一个表中的所有列是否也存在于另一个表中

时间:2012-10-15 16:16:38

标签: sql sql-server-2008

我在表示客户交易的MS SQL DB中有2个表(比如A和B)。两者共享一列(比如列X)。

理想情况下,表B中的信息是表A中的信息子集。

如果表A中的所有值都存在于表A中,是否可以运行SQL查询以根据列X进行检查?

由于

2 个答案:

答案 0 :(得分:3)

select X
from A
LEFT OUTER JOIN B on A.x = B.X
WHERE B.X IS NULL

获取表A中不在表B中的所有记录。或

select X
from B
LEFT OUTER JOIN A on A.x = B.X
WHERE A.X IS NULL

获取表B中不在表A中的所有记录。

答案 1 :(得分:2)

这是检查表A中是否缺少任何表B行。

SELECT b.*
    FROM Table_B b
    WHERE NOT EXISTS(SELECT 1
                         FROM Table_A a
                         WHERE a.x = b.x);