我是一个SQL新手,我遇到了一个我不确定如何解决的问题。我有一个站点表,每个站点在他们自己的表中有许多相关的报告。报告表的一个字段是对是/否问题的答案。
我想识别其报告中没有答案的网站。
SELECT * FROM Sites
INNER JOIN Reports ON Sites.ID = Reports.ID
WHERE Reports.Answer = 'No'
当然,这将标识所有报告并回答“否”,但我不想包含任何报告中包含“是”的网站。
答案 0 :(得分:1)
使用NOT EXISTS():
SELECT * FROM Sites
WHERE NOT EXISTS(SELECT * FROM Reports WHERE Sites.ID = Reports.ID
AND Reports.Answer <> 'No')
答案 1 :(得分:0)
SELECT *
FROM Sites S
WHERE S.ID NOT IN
(
SELECT *
FROM Sites S
WHERE S.ID
JOIN Reports R
ON S.ID = R.ID
WHERE R.Answer = 'No'
)