she*_*ira 1 mysql sql join mariadb
我有2张桌子
Table1
Year,Month, data
2017,1,2
2018,2,10
Table2
Year,Month,data2
2017,1,5
2019,2,2
Run Code Online (Sandbox Code Playgroud)
我正在尝试将这些表合并为 1 个表,其中我们从两个表中获取所有行,如下所示。
Year,Month,data,data2
2017 ,1,2,5
2018,2,10,NULL
2019,2,NULL,2
Run Code Online (Sandbox Code Playgroud)
似乎标准外连接在这里不起作用,我也不能使用 Union ALL 是否有某种外连接查询来完成此操作?
您应该使用 UNION 从两个表中获取所有年份和月份,并使用左连接将其与表 1 和表 2 相关联
select a.Year , a.Month, b.data, c.data2
from (
select Year,Month
from Table1
union
select Year,Month
from Table2
) a
left join table1 b on a.Year = b.Year and a.month = b. month
left join table2 c on a.Year = c.Year and a.month = c. month
Run Code Online (Sandbox Code Playgroud)