在简单的RIGHT JOIN
声明中:
select *
from SRC_TABLE
right join DEST_TABLE
on SRC_TABLE.COL = DEST_TABLE.COL
如何仅从DEST_TABLE返回DID没有来自RIGHT JOIN
子句的行?
答案 0 :(得分:2)
您只缺少条件来仅选择没有匹配的行,在这种情况下,此列为NULL
。
select *
from SRC_TABLE
right join DEST_TABLE
on SRC_TABLE.COL = DEST_TABLE.COL
WHERE SRC_TABLE.COL IS NULL -- ADD THIS LINE
答案 1 :(得分:2)
你可能会把这个写得更好:
SELECT d.*
FROM DEST_TABLE d
WHERE NOT EXISTS(SELECT 1
FROM SRC_TABLE s
WHERE s.COL = d.COL)
答案 2 :(得分:1)
select *
from SRC_TABLE
right join DEST_TABLE
on SRC_TABLE.COL = DEST_TABLE.COL
where SRC_TABLE.COL IS NULL
答案 3 :(得分:0)
EXECEPT是另一种选择
select DEST_TABLE.COL from DEST_TABLE
EXCEPT
select SRC_TABLE.COL from SRC_TABLE