大佬教程收集整理的这篇文章主要介绍了将表 A 的 ID 连接到表 B 的 2 列之一,返回不匹配列中的值,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
编辑:在预览中,表格看起来非常好,但我不确定为什么我最终发布的问题中的表格看起来不正常
我想将两个表连接在一起,如下图所示 A.ID = B.source_ID OR A.ID = B.target_ID 到一个新表 C
结果表 C 应该有 A.ID 列,以及 B.source_ID 或 B.target_ID - 以不匹配的列值为准。有什么简单的方法可以做到这一点?
我考虑过只复制表 B,但反转 source_ID 和 target_ID,然后只匹配其中一列,但使用大型数据集(数亿行)似乎有点不切实际。
会喜欢你的想法!
table A
| ID |
| ----|
| 123 |
| 456 |
| 789 |
table B
| source_ID | target_ID | ... |
| ----------| --------- | ---- |
| 123 | 111 | misc |
| 222 | 456 | misc |
| 333 | 789 | misc |
Result: table C
| A.ID | new_ID_column | ... |
| ---- | ------------- | ---- |
| 123 | 111 | misc |
| 456 | 222 | misc |
| 789 | 333 | misc |
反转表格是个好主意。但您也可以使用两个 left join
和 coalesce()
逻辑:
select a.id,coalesce(bs.target_id,bt.source_id),coaesce(bs.col1,bt.col1)
from a left join
b bs
on a.id = bs.source_id left join
b bt
on a.id = bt.target_id
以上是大佬教程为你收集整理的将表 A 的 ID 连接到表 B 的 2 列之一,返回不匹配列中的值全部内容,希望文章能够帮你解决将表 A 的 ID 连接到表 B 的 2 列之一,返回不匹配列中的值所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。