我必须表:(id
,name
) 和另一个表 (id
,id_name
,钱
)。
在第二个表中我有类似的内容:
1, 1, 200
2, 1, 400
3, 2, 400
在第一个表中:
1,alex
2,jason
执行查询后,我希望收到此结果:
alex,600
jason,400
这是我的查询:
SELECT tabel1.nume ,SUM(tabel2.money) FROM tabel2 JOIN tabel2
ON tabel1.id = tabel2.id_name
WHERE tabel1.id = tabel2.id_name ORDER BY SUM(money)
我只收到第二个表的第一行。
我哪里做错了?
最佳答案
您需要使用GROUP BY
SELECT tabel1.name ,SUM(tabel2.money)
FROM tabel2 JOIN tabel2 ON tabel1.id = tabel2.id_name
WHERE tabel1.id = tabel2.id_name
GROUP BY tabel1.name
ORDER BY SUM(money)
如果您使用没有GROUP BY
的聚合函数,MySQL会将所有内容分组到单行中。
关于Mysql 结果按 sum() 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23127833/