我有一张投票表,旁边有一个'想法'(条目)
的表格基本上,我想要检索一个可以读作的对象:
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
字段,其中正面和负面投票一起添加?
答案 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;