完全连接 mariaDB 中的 2 个表

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 是否有某种外连接查询来完成此操作?

sca*_*dge 5

您应该使用 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)