现有两张表,数据如下:
A表:
id pid souse1
1 001 10
1 001 11
1 001 12
1 002 13
B表
id pid souse2
1 001 1
1 001 2
1 001 3
1 001 4
1 003 14
A表中的ID,pid和B表中的ID,pid属性一样,A表中的数据有可能大于B表中的数据,也可能少于B于中的数据,也可能相同,现在想实现如下整合的数据表
C表
id pid souse1 souse2
1 001 33 10
1 002 13 0
1 003 0 14
实现语句:
SELECT id, pid, SUM(s1) AS souse1, SUM(s2) AS souse2
FROM (
SELECT A.id, A.pid, souse1 AS s1, 0 AS s2 FROM A
UNION
SELECT B.id, B.pid, 0 AS s1, souse2 AS s2 FROM B
)
GROUP BY id, pid;
本篇博客介绍如何将具有相同ID和PID字段的A表和B表数据进行合并,生成C表。A表可能包含比B表更多的记录,反之亦然。最终目标是创建一个新表C,展示每个ID和PID组合下的souse1和souse2字段的值,如果一方不存在则用0填充。示例中给出了实现这一操作的SQL语句。
3141

被折叠的 条评论
为什么被折叠?



