通过连接从两个表求和

Ima*_*mam 1 mysql sql

假设我有两个包含 2 列的表: 表 A

工作 成本
1 100
1 200
2 100
2 150
2 50

和表B:

工作
1 100
1 100
1 200
2 100
2 100

我想通过连接这两个表来查询结果,如下所示:

工作 成本
1 300 400
2 300 200

我尝试如下查询,但结果不符合预期:

SELECT A.Job, 
       SUM(A.Cost) AS NCOST,
       SUM(B.Sell) AS NSELL   
FROM TableA A 
JOIN TableB B ON A.Job= B.Job
GROUP BY A.Job;
Run Code Online (Sandbox Code Playgroud)

谁能帮助我纠正我的查询?

for*_*pas 6

使用连接UNION ALL而不是聚合:

SELECT Job,
       SUM(Cost) AS Cost,
       SUM(Sell) AS Sell
FROM (
  SELECT Job, Cost, 0 AS Sell FROM TableA
  UNION ALL
  SELECT Job, 0, Sell FROM TableB
) AS t
GROUP BY Job;
Run Code Online (Sandbox Code Playgroud)