1

我有一张选票表,旁边是一张“想法”表(条目)

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

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

Wherevalue可以是正数或负数int

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

加分点:我如何获得一个aggregate字段,将正面和负面投票加在一起?

4

1 回答 1

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;
于 2013-09-01T03:08:29.963 回答