我在表示客户交易的MS SQL DB中有2个表(比如A和B)。两者共享一列(比如列X)。
理想情况下,表B中的信息是表A中的信息子集。
如果表A中的所有值都存在于表A中,是否可以运行SQL查询以根据列X进行检查?
由于
答案 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);