我必须使用一个内部联接表中的结果,然后获取另一个链接表中不存在的记录:
答案 0 :(得分:1)
要检查值是否不在一组值中,请使用NOT IN:
SELECT *
FROM A
WHERE some_ID NOT IN (SELECT C.some_ID
FROM B
JOIN C ON ...)
或者,使用相关子查询,该子查询对外部查询中的每个记录执行单独查找:
SELECT *
FROM A
WHERE NOT EXISTS (SELECT 1
FROM B
JOIN C ON ...
WHERE C.some_ID = A.some_ID)
或者,使用outer join并检查哪些记录不匹配:
SELECT A.*
FROM A
LEFT JOIN (B JOIN C ON ...)
ON A.some_ID = C.some_ID
WHERE C.some_ID IS NULL