gpt4 book ai didi

sql - 从 SQL 表中获取常见和不常见的记录

转载 作者:行者123 更新时间:2023-12-02 00:18:29 26 4
gpt4 key购买 nike

我有两个名为 TableA 和 TableB 的表

假设表A

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

我很困惑得到这个结果。我需要记录,如果两列的值都比显示在一行中的值相同,否则不是。

我该怎么做?

最佳答案

标准 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)

关于sql - 从 SQL 表中获取常见和不常见的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11982960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com