从表中选择SUM和唯一值的最佳方法

时间:2013-05-28 00:03:49

标签: mysql sql

我有一个SQL查询,它计算某个列的值的总和,还需要从同一个表中检索单个值。

我很想知道,因为会读取整个表来计算总和,有没有办法可以在同一时刻选择想要的值?

这是可能的还是我需要在桌面上制作2个不同的SELECT,如下所示?

我查询的当前代码是:

SELECT [columns],

(SELECT SUM(value) FROM votes WHERE postid=p.postid) AS charge,
(SELECT value FROM votes WHERE postid=p.postid AND userid=u.userid) AS currentVote

FROM posts p, users u WHERE p.userid=u.userid

谢谢!

1 个答案:

答案 0 :(得分:1)

在您的具体情况下,您可以根据需要获得与特定用户的帖子相关的投票值的总和。

您可以使用以下内容来代替使用嵌套查询:

根据评论我更新了查询:

SQL小提琴:http://www.sqlfiddle.com/#!2/2a0920/9

SELECT p.postid, sum(v.value) AS charge,
v.value AS currentVote
FROM posts p,
     users u,
     votes v
WHERE p.userid=u.userid
  AND v.postid = p.postid
group by p.postid;