我在SQL Server 2008中工作。我有几个表,每个表都有一个共用键。假设我想从其中一个表开始,并将其过滤到任何其他表中不存在的记录。这样做的最佳方式是什么?
一般来说,我知道我想为2个表做以下的事情:
SELECT
A.col_1
FROM Table_A A
LEFT JOIN Table_B B
ON A.col_1 = B.col_x
WHERE B.col_x IS NULL
我是否只是在每个WHERE子句后继续使用JOIN?
对于案例3表,我希望做到以下几点,但我知道它不起作用:
SELECT
A.col_1
FROM Table_A A
LEFT JOIN Table_B B
ON A.col_1 = B.col_x
WHERE B.col_x IS NULL
LEFT JOIN Table_C C
ON A.col_1 = C.col_i
WHERE C.col_i IS NULL
上述查询有什么问题?
答案 0 :(得分:0)
我正在解答您的问题并将其发布在此处以帮助未来的访问者。
SELECT
A.col_1
FROM Table_A A
LEFT JOIN Table_B B
ON A.col_1 = B.col_x
LEFT JOIN Table_C C
ON A.col_1 = C.col_i
WHERE
(
B.col_x IS NULL
AND
C.col_i IS NULL
)