真正简单的问题,但完全混淆了我自己。
说我有以下表格:
id - count1
a - 7
b - 4
d - 2
id - count2
a - 3
c - 4
我想创建一个提供以下结果的表:
id - count1 - count2
a - 7 - 3
b - 4 - null
c - null - 4
d - 2 - null
我需要使用哪种类型的联接?
干杯,
本
答案 0 :(得分:8)
理想情况下,您可能希望使用FULL OUTER JOIN,但它是not supported in 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
结果:
id count1 count2 a 7 3 b 4 NULL c NULL 4 d 2 NULL