這 - 會產生不正確值total_classes
這兩個查詢有什麼區別?爲什麼不同的結果
SELECT IFNULL(count(wc.id_wc),0) AS total_classes
FROM `all_tag_relations` AS a
LEFT JOIN (tags AS t, WebClasses as wc)
ON (a.id_tag = t.id_tag AND a.id_tutor = wc.id_author)
GROUP BY a.id_tutor
但是這一次 - 使用子查詢提供了正確的價值觀 -
SELECT (SELECT IFNULL(count(wc.id_wc),0) FROM WebClasses as wc WHERE wc.id_author = a.id_tutor) AS total_classes
FROM `all_tag_relations` AS a
LEFT JOIN (tags AS t) ON (a.id_tag = t.id_tag)
group by a.id_tutor
解決方案 解決的辦法是加入其他表與實際的Tutors表All_Tag_relations像這樣
...FROM Tutors as td on join All_Tag_Relations as a on td.id_tutor=a.id_tutor LEFT JOIN ...
你問爲什麼把左邊的表格改爲右邊的區別? – Mikhail 2010-11-21 16:05:21