0
我正在使用左連接來計算不匹配的行,但雖然我的查詢是正確的我有一些邏輯問題。 check this fiddle左加入計數無與倫比的行給出不正確的計數
查詢應返回計數1,而是返回0。I知道的原因是因爲它找到一個匹配的行,但我不知道其他的方法來解決疑難問題需要計算一個看不見的問題用戶。
我正在使用左連接來計算不匹配的行,但雖然我的查詢是正確的我有一些邏輯問題。 check this fiddle左加入計數無與倫比的行給出不正確的計數
查詢應返回計數1,而是返回0。I知道的原因是因爲它找到一個匹配的行,但我不知道其他的方法來解決疑難問題需要計算一個看不見的問題用戶。
您需要將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