SQL将两张包含相同字段和不同字段的表数据合并成⼀张表
此为SQL案例:将两张具备相同字段,有⼀部分字段不相同的两张表获取查询结果为整合之后的。
两张表
table1
table2
我想要将两者的数据进⾏合并达到如下的效果:
这⾥限制条件有两个分别是date,code 两个,只有当两者都对应上才能达到我想要的效果。于是我绞尽
脑汁也想不出来该如何去解决问题。
于是乎,我⼜重新回到了起点。(我跑去看菜鸟教程了)
可能是我原来没仔细看吧,终于让我发现了⼀个解决问题的⽅式,果然回归原始的基础,还是能解决很多问题的。
sql中union多表合并
我先把table1的所有数据和table2 的与table1中有共同限制条件的数据查询出来。
SELECT
t1.date,
t1.NAME,
t1.CODE,
t1.times,
t2.times1
FROM
table1 t1
LEFT JOIN table2 t2 ON t1.CODE = t2.CODE
然后再使⽤is null 去筛选出table2 中既不属于table2 也不属于table1 的数据。
SELECT
t2.date,
t2.NAME,
t2.CODE,
t1.times,
t2.times1
FROM
table1 t1
RIGHT JOIN table2 t2 ON t1.CODE = t2.CODE
WHERE
t1.CODE IS NULL
最后再把所有的数据Union成⼀张中间表,然后再从这张中间表中查询出想要的数据。
SELECT date,name,code,times,times1 FROM((
SELECT
t1.date,
t1.NAME,
t1.CODE,
t1.times,
t2.times1
FROM
table1 t1
LEFT JOIN table2 t2 ON t1.CODE = t2.CODE
UNION
SELECT
t2.date,
t2.NAME,
t2.CODE,
t1.times,
t2.times1
FROM
table1 t1
RIGHT JOIN table2 t2 ON t1.CODE = t2.CODE
WHERE
t1.CODE IS NULL
))AS temp ORDER BY date
最终得到的结果就是我想要的:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。