我有两个名为TableA和TableB的表格
让我们说TableA
Id TableAName
------------------
1 11
2 12
3 13
4 14
5 15
让我们说TableB
Id TableBName
----------------
1 11
2 22
3 23
4 24
5 25
我想要下面的结果
TableAName TableBName
-------------------------
11 11
12 Null
13 Null
14 Null
15 Null
Null 22
Null 23
Null 24
Null 25
我很难得到这个结果。我需要记录,如果两列的值都比一行中显示的值相同,否则不是。
我该怎么做?
答案 0 :(得分:3)
标准SQL:
SELECT
A.TableAName, B.TableBName
FROM
TableA A
FULL OUTER JOIN
TableB B ON A.TableAName = B.TableBName
MySQL不支持FULL OUTER JOIN
SELECT
A.TableAName, B.TableBName
FROM
TableA A
LEFT OUTER JOIN
TableB B ON A.TableAName = B.TableBName
UNION
SELECT
A.TableAName, B.TableBName
FROM
TableA A
RIGHT OUTER JOIN
TableB B ON A.TableAName = B.TableBName
编辑,取自@Dems删除的答案
您可以添加此项以获得与上述相同的订单
ORDER BY
COALESCE(A.TableAName, B.TableAName)