我有一個包含兩個表的數據庫: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