SQL Join从左右表中返回空行

Ben*_*Ben 3 mysql sql join

可能重复:
MySQL:FULL OUTER JOIN - 如何合并一列?

真正简单的问题,但完全混淆了自己.

说我有以下表格:

TBL1

id - count1
a - 7
b - 4
d - 2

TBL2

id - count2
a - 3
c - 4

我想创建一个表,给出以下结果:

tbl_temp

id - count1 - count2
a - 7 - 3
b - 4 - null
c - null - 4
d - 2 - null

我需要使用什么类型的联接?

干杯,

Mar*_*ers 9

理想情况下,您可能希望使用FULL OUTER JOIN,但MySQL不支持它.相反,您可以使用LEFT和RIGHT OUTER JOIN(或其他LEFT,表格颠倒)和UNION ALL结果来模拟它.

SELECT
    tbl1.id,
    tbl1.count1,
    tbl2.count2
FROM tbl1
LEFT JOIN tbl2
ON tbl1.id = tbl2.id

UNION ALL

SELECT
    tbl2.id,
    tbl1.count1,
    tbl2.count2
FROM tbl2
LEFT JOIN tbl1
ON tbl1.id = tbl2.id
WHERE tbl1.id IS NULL

ORDER BY id
Run Code Online (Sandbox Code Playgroud)

结果:

id  count1  count2
a   7       3     
b   4       NULL  
c   NULL    4     
d   2       NULL