我有一个SUM(value)
计算每个idea
的投票,但是这受到每个想法可以具有的数量tag
的影响。MySQL组通过影响其他组
例如,
SELECT
id,
title,
description,
COALESCE(SUM(case when value > 0 then value end),0) votes_up,
COALESCE(SUM(case when value < 0 then value end),0) votes_down,
GROUP_CONCAT(DISTINCT tags.name) AS 'tags',
FROM ideas
LEFT JOIN votes ON ideas.id = votes.idea_id
LEFT JOIN tags_rel ON ideas.id = tags_rel.idea_id
LEFT JOIN tags ON tags_rel.tag_id = tags.id
GROUP BY ideas.id
因此,如果有一个以上的tags.name
,那么SUM()
得到通过的tags.name
我怎样才能解决这个数乘以?
每隔DBMS会拒绝这种说法。阅读http://rpbouman.blogspot.de/2007/05/debunking-group-by-myths.html和http://www.mysqlperformanceblog.com/2006/09/06/wrong-group-by-makes -your-queries-fragile /了解你的'group by'用法有什么问题。 –