gpt4 book ai didi

mysql - 在加入主表之前对子查询中的多对一元素求和

转载 作者:行者123 更新时间:2023-11-29 18:28:00 24 4
gpt4 key购买 nike

在使用子查询的结果连接到主表之前,我需要对属于子查询中某个 ID 的所有值求和。例如:

Table A
ID | Site
1 | TX
2 | NY

Table B
ID | Cost
1 | 10
1 | 2
1 | 8
2 | 3
2 | 7

Select A.Site, B.Cost
from A
Left join (select distinct ID, Cost from B) as B
on A.ID = B.ID
Group by A.Site;

该表的结果是:

Site   |   Cost
TX | 10
NY | 3

应该是

Site   |   Cost
TX | 20
NY | 10

看来我的子查询并没有提取属于每个不同 B.ID 的所有成本 - 因此我的联接仅带来第一个成本记录,而不是每个 B.ID 每个成本记录的总和

在将子查询连接到主表之前,如何对子查询中的所有成本求和?我需要使用子查询,因为我的 ID 是一对多,而且我的表很大,所以如果我只是连接两个表,查询将永远进行。

谢谢!

最佳答案

听起来这可以通过子查询来解决

Select 
A.Site,
(SELECT SUM(B.Cost) FROM B WHERE B.Id = A.Id) as `Cost`
FROM A;

关于mysql - 在加入主表之前对子查询中的多对一元素求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45992167/

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