Mysql子查询总票数

时间:2013-09-01 03:00:45

标签: mysql

我有一张投票表,旁边有一个'想法'(条目)

的表格

基本上,我想要检索一个可以读作的对象:

id,
name,
title,
votes : {
  up : x,
  down : y
}

所以这很简单,直到我到达子查询并且需要对投票的正值和负值做两组SUM。

SELECT id,name,title FROM ideas
LEFT JOIN votes ON ideas.id = votes.idea_id

我的(简化)投票表看起来像:

id
idea_id
value

value可以是正面的,也可以是负面int

如何在单个查询中获取上述对象?

加分点:我如何获得aggregate字段,其中正面和负面投票一起添加?

1 个答案:

答案 0 :(得分:2)

试试这个..未经测试。

SELECT 
id,
name,
title, 
SUM(case when value > 0 then value end) up,
SUM(case when value < 0 then value end) down
 FROM ideas
LEFT JOIN votes ON ideas.id = votes.idea_id
GROUP By id;