我有一个 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
谢谢!
最佳答案
在您的具体情况下,这是可能的,因为您想要与特定用户的帖子相关的投票值的总和。
您可以使用类似这样的内容,而不是使用嵌套查询:
根据评论,我更新了查询:
SQL fiddle :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;
关于mysql - 从表中选择 SUM 和唯一值的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16782039/