gpt4 book ai didi

mysql - 对多个不相关的表的值求和?

转载 作者:行者123 更新时间:2023-11-29 13:14:57 24 4
gpt4 key购买 nike

我有三个表:用户、销售额和积分。

每个用户有多个销售和多个积分。

销售额有一个“值”列,点有一个“分数”列,如下所示

users = | user_id | name |

sales = | sale_id | user_id | value |

points = | point_id | user_id | score |

现在我想显示所有用户的列表及其销售额和积分的总和,如下所示

user_id | sum(sales.value) | sum(points.value)
1 | 500 | 200
2 | 213 | 132
3 . . .

是否可以在一个查询中实现而不使用子查询?

或者什么是最好、最简单的方法?我试图尽可能地简化它,因为我有很多与用户相关的信息,我必须以这种方式显示。

我尝试使用左联接,但是当我在一个查询中联接两个一对多表时,由于重复的行,总和显然变得困惑。我尝试对数据进行分组,但我想我迷路了。

最佳答案

SQL 中“正确”的方法是在连接表之前对表进行汇总:

select u.user_id, sumvalue, sumscore
from users u left outer join
(select user_id, sum(value) as sumvalue
from sales
group by user_id
) s
on u.user_id = s.user_id left outer join
(select user_id, sum(score) as sumscore
from points
group by user_id
) p
on u.user_id = p.user_id;

关于mysql - 对多个不相关的表的值求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21593016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com