sql - 完全外连接类似功能但合并列
问题描述
表A
id | symbolA
1 m
2 n
4 o
表B
id | symbolB
2 p
3 q
5 r
我想要以下结果:
id | symbolA | symbolB
2 n p
1 m NULL
4 o NULL
3 NULL q
5 NULL r
这是我已经尝试过的:
SELECT
TableA.id,
TableB.id,
TableA.symbolA,
TableB.symbolB
FROM
TableA
FULL OUTER JOIN
TableB
ON
TableA.id = TableB.id
NewTable
TableA.id | TableA.symbolA | TableB.id | TableA.symbolB
2 n 2 p
1 m NULL NULL
4 o NULL NULL
NULL NULL 3 q
NULL NULL 5 r
我已经尝试过结合合并的完整外部连接,但它并没有完全给我上述所需的输出。该语言是 BigQuery,尽管我希望我的请求没有任何特殊之处,不会使其与 SQL 语言无关。谢谢。
解决方案
你快到了。您只需要合并这两id
列。
为此,您可以使用coalesce()
:
select
coalesce(a.id, b.id) id,
a.symbola,
b.symbolb
from tablea a
full outer join tableb b on a.id = b.id
以下连接的语法也using
应该有效(大多数支持的数据库都full join
允许这样做):
select
id,
a.symbola,
b.symbolb
from tablea a
full outer join tableb b using(id)
推荐阅读
- javascript - Javascript 引号索引器
- r - 拉取后如何在 R 中编辑 CSV 文件中的数据?
- google-chrome-extension - Node.js 导入/导出和 chrome/opera/firefox 扩展。2020年的情况
- php - StripeObject.php array_keys() 期望参数 1 为数组,给定 null
- c# - 使用 BotServiceStressToolkit 和 MockChannel 进行 BotFramework 负载测试。从 MockChannel 获取数据的问题
- python - 如何将 Python Flask 后端连接到 React 前端?它是如何协同工作的?
- apache-spark - 别名内部加入pyspark
- docker - 为什么我的 docker compose 文件只适用于端口 80 而不是其他端口?
- python - 如何在 tkinter 中删除 canvas.create_text() 中文本的最后一个字符?
- arrays - 是否可以在二维数组中输入 2 种数据类型?