SELECT users.xp, users.clan, clans.name,
SUM(CASE WHEN users.clan = clans.name
THEN users.xp
END) AS total
FROM users, clans
WHERE users.clan = clans.name
为什么在有多个氏族且氏族中有多个xp用户的情况下,此SQL查询仅打印一条记录。它确实在显示的给定氏族中打印出正确的xp总和,但是我需要其余的氏族。
当您使用组函数时,mysql会通过将结果汇总到一行中来“帮助”您。要使每个氏族获得一行,请使用GROUP BY
:
SELECT clans.name, SUM(users.xp) AS total
FROM users, clans
WHERE users.clan = clans.name
GROUP BY clans.name
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句