我需要在使用该子查询的结果加入我的主表之前总和属于子查询中的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;