0

我正在使用左连接来计算不匹配的行,但是虽然我的查询是正确的,但我遇到了一些逻辑问题。 检查这个小提琴

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

4

1 回答 1

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
于 2013-08-12T09:00:08.893 回答