我正在使用左连接来计算不匹配的行,但是虽然我的查询是正确的,但我遇到了一些逻辑问题。 检查这个小提琴
查询应该返回计数 1,但返回 0。我知道原因是因为它找到了匹配的行,但我不知道解决问题的其他方法。我需要计算用户看不见的问题。
您需要将您的qv.question_view_id IS NULL
子句作为 的一部分,而JOIN
不是WHERE
.
SELECT qt.user_id, count(q.question_id) cnt
FROM questions q
INNER JOIN questions_to qt ON qt.question_id = q.question_id
LEFT JOIN question_view qv ON q.question_id = qv.question_id
-- Not that I've moved this clause into the JOIN condition.
AND qv.question_view_id IS NULL
WHERE qt.user_id = 13
GROUP BY qt.user_id