mysql按條件統計count,及關聯查詢顯示count爲0的記錄問題

業務場景是這樣的。我在關聯查詢時,需要按不同的條件,統計出兩個或者多個count。並且也要顯示出count爲0的記錄。

拆分問題:

    1、按條件統計多個count

    2、使用count後關聯查詢失效。count爲0的記錄不顯示。

解決方法如下:

    1、按條件統計count可以用如下方法

COUNT(IF(條件 , 統計字段, NULL))
SELECT t1.*,COUNT(IF(t3.status = 1 , t2.id, NULL)) AS downCount,COUNT(IF(t3.status = 2 , t2.id, NULL)) AS upCount FROM ex_exam_question t1
LEFT JOIN ex_exam_question_suggestion t2 ON t2.question_id = t1.`id`
LEFT JOIN ex_exam_question_suggestion_item t3 ON t2.suggestion_item_id = t3.id
WHERE 1=1

2、解決關聯查詢失效問題

通過加group by來解決

將上述sql修改如下

 

SELECT t1.*,COUNT(IF(t3.status = 1 , t2.id, NULL)) AS downCount,COUNT(IF(t3.status = 2 , t2.id, NULL)) AS upCount FROM ex_exam_question t1
LEFT JOIN ex_exam_question_suggestion t2 ON t2.question_id = t1.`id`
LEFT JOIN ex_exam_question_suggestion_item t3 ON t2.suggestion_item_id = t3.id
WHERE 1=1 GROUP BY t1.`id`

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章