2

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

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

如果表 B 中的所有值都存在于表 A 中,我可以运行 SQL 查询来检查基于 X 列的值吗?

谢谢

4

2 回答 2

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

于 2012-10-15T16:18:22.970 回答
3

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

SELECT b.*
    FROM Table_B b
    WHERE NOT EXISTS(SELECT 1
                         FROM Table_A a
                         WHERE a.x = b.x);
于 2012-10-15T16:19:09.883 回答