MySQL 5.7 +

时间:2019-03-19 06:05:58

标签: mysql join mysql-5.7

我有一个使用MySQL联接的方案 请看下面给出的2张表

表1:

id   A   B
1    10  25
2    13  24
3    15  20

表2:

id   C   D
2    12  21
3    10  18
4    13  23

我的问题是将这些表连接到中,该表将返回两个表中具有相应值的所有行

表1加入表2:

id     A     B     C     D
1     10     25   null  null
2     13     24    12    21
3     15     20    10    18
4     null   null  13    23

我认为我们可以使用完全外部联接来实现这一点。 但是在MySQL 5.7+中,不支持完全连接。 我搜索了许多类似的问题。但是所有人都在谈论左右联合。 该解决方案不会帮助我,因为我总共有7张这样的桌子。我需要以这种方式从每个表中获取所有数据。 因此,如果我使用带有联合的左右联接,我的查询将成为一个巨大的查询。 那么还有其他方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:0)

UNION ALL一起使用左键和rigt连接

select a.id,A,B, C, D
from table1 a left join table2 b n a.id=b.id
union 
select a.id,A,B, C, D
from table1 a right join table2 b n a.id=b.id