左连接计数不匹配的行给出不正确的计数

时间:2013-08-12 08:54:48

标签: mysql

我使用左连接来计算不匹配的行,但是虽然我的查询是正确的但我有一些逻辑问题。 check this fiddle

查询应返回计数1,而是返回0.我知道原因是因为它找到匹配的行,但我不知道解决问题的其他方法。我需要计算用户看不见的问题。 / p>

1 个答案:

答案 0 :(得分:1)

您需要将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