Mysql 合并两个表的总和
我有以下两个MYSQL每周表: 表A_Wk1Mysql 合并两个表的总和,mysql,Mysql,我有以下两个MYSQL每周表: 表A_Wk1 Id | Price ---------- 1 | 1 1 | 2 2 | 5 表A_Wk2 Id | Price ---------- 1 | 2 4 | 2 我可以将价格分组到一个表中: SELECT Id, SUM(Price) FROM TableA_Wk1 GROUP BY Id 得到 Id | Price ---------- 1 | 3 2 | 5 我也想考虑表表WK2,得到下面的: Id | Price ----
Id | Price
----------
1 | 1
1 | 2
2 | 5
表A_Wk2
Id | Price
----------
1 | 2
4 | 2
我可以将价格分组到一个表中:
SELECT Id, SUM(Price) FROM TableA_Wk1
GROUP BY Id
得到
Id | Price
----------
1 | 3
2 | 5
我也想考虑表表WK2,得到下面的:
Id | Price
----------
1 | 5
2 | 5
4 | 2
如果我使用UNION,则所有结果将被分隔:
SELECT Id, SUM(Price) FROM TableA_Wk1
GROUP BY Id
UNION ALL
SELECT Id, SUM(Price) FROM TableA_Wk2
GROUP BY Id
合并结果集,然后执行求和以获得求和值
select sum(price) from (
select price from TableA_Wk1
union all
select price from TableA_Wk1
) as alais
合并结果集,然后执行求和以获得求和值
select sum(price) from (
select price from TableA_Wk1
union all
select price from TableA_Wk1
) as alais
首先从这两个表中获取所有的
元组。然后在结果表上使用SUM
和GROUP BY Id
SELECT
t.Id,
SUM(t.price)
FROM
(
SELECT Id, Price FROM TableA_Wk1
UNION ALL
SELECT Id, Price FROM TableA_Wk2
) AS t
GROUP BY t.Id
注意
UNION
删除重复项
UNION ALL
不会。首先从这两个表中获取所有的
元组。然后在结果表上使用SUM
和GROUP BY Id
SELECT
t.Id,
SUM(t.price)
FROM
(
SELECT Id, Price FROM TableA_Wk1
UNION ALL
SELECT Id, Price FROM TableA_Wk2
) AS t
GROUP BY t.Id
注意
UNION
删除重复项
UNION ALL
不会。首先UNION
,然后分组:
SELECT t.id,sum(t.price) as price
FROM (
SELECT id,price from TableA_Wk1
UNION ALL
SELECT id,price from TableA_Wk2
) t
GROUP BY t.id
首先联合
,然后分组:
SELECT t.id,sum(t.price) as price
FROM (
SELECT id,price from TableA_Wk1
UNION ALL
SELECT id,price from TableA_Wk2
) t
GROUP BY t.id