我们有以下三个不同的表格...
用户
ID, 用户名 密码 电子邮件
user_clubs
ID, 用户身份, 俱乐部名称
销售
ID, 俱乐部 ID, 数量, 管理费用, dnt
我们希望获得 user_id 未支付的 admin_fees 总和(例如 55),因此我们尝试了以下操作...
SELECT u.id, count(c.id), SUM(s.admin_fees) as total_admin_fees
FROM users u
LEFT JOIN user_clubs c ON c.user_id = u.id
LEFT JOIN sales s ON s.club_id = c.id
WHERE u.id = 55
GROUP BY u.id;
但其返回值是第一行,所以余额不正确,请帮忙解决。
最佳答案
试试这个:
SELECT g.id, count(g.club_id), SUM(g.admin_fees) AS total_admin_fees
FROM (
SELECT u.id, c.id AS club_id, s.admin_fees
FROM users u
LEFT JOIN user_clubs c ON c.user_id = u.id
LEFT JOIN sales s ON s.club_id = c.id
WHERE u.id = 55
) AS g
GROUP BY g.id;
关于mysql - mysql 结果总数和总和错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18476819/