这 - 会产生不正确值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