程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了将表 A 的 ID 连接到表 B 的 2 列之一,返回不匹配列中的值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决将表 A 的 ID 连接到表 B 的 2 列之一,返回不匹配列中的值?

开发过程中遇到将表 A 的 ID 连接到表 B 的 2 列之一,返回不匹配列中的值的问题如何解决?下面主要结合日常开发的经验,给出你关于将表 A 的 ID 连接到表 B 的 2 列之一,返回不匹配列中的值的解决方法建议,希望对你解决将表 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 joincoalesce() 逻辑:

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,请注明来意。