如何从表中选择受另一个值约束的记录?

时间:2014-10-23 15:45:37

标签: sql

我是一个SQL新手,我遇到了一个我不确定如何解决的问题。我有一个站点表,每个站点在他们自己的表中有许多相关的报告。报告表的一个字段是对是/否问题的答案。

我想识别其报告中没有答案的网站。

SELECT * FROM Sites
INNER JOIN Reports ON Sites.ID = Reports.ID
WHERE Reports.Answer = 'No'

当然,这将标识所有报告并回答“否”,但我不想包含任何报告中包含“是”的网站。

2 个答案:

答案 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'
          )