我有一个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
谢谢!
答案 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;