我有一个包含两个表的数据库:participants
和responses
。参与者可以有零个,一个或多个响应。响应也可能不完整(标记为ended
时间戳列中的NULL)。参与者可能有零个或一个不完整的答复。查找零个或一个相关记录的记录
我如何找到所有没有答复的参与者,或只有一个不完整的答复?
这是我第一次尝试的SQL:
SELECT * FROM participants p
LEFT JOIN responses r
ON p.id = r.id_participant
WHERE r.id IS NULL
OR (count(r.id) = 1 AND r.ended IS NULL)
我得到的错误:Invalid use of group function
我尝试了一些变化(例如SELECT *, count(r.id) as numr
等),但我没有得到,在哪里。我相信我需要一个完全不同的方法。
我猜你应该使用具有的,而不是在那里 – minigeek
是否“参与者有很多反应,一个反应是不完整的,其余完成“属于”参与者有一个不完整的答复“? –
@LeoZhao基本上,我试图找到所有没有努力的参与者(即完成至少一个响应)。 – Erics