gpt4 book ai didi

SQL JOIN 在同一列上两次

转载 作者:行者123 更新时间:2023-11-29 11:56:20 24 4
gpt4 key购买 nike

假设我有一个表 [public].[ids],其中包含客户 ID 的映射

public.ids

old_id | new_id
===============
100 | 1000
101 | 1001
102 | 1002

我还有一个推荐表,当客户推荐另一行时,我会在其中记录一行,如下所示:

public.referrals

referring_id | referred_id
==========================
100 | 101
101 | 102

我想知道使用新 ID 时该表是什么样子。这意味着我必须加入推荐表两次。一次用于refering_id,一次用于refered_id。最终,我想要一个如下所示的表格:

结果

referring_new_id | referred_new_id
==================================
1000 | 1001
1001 | 1002

如何通过这些新列的自定义命名来实现此目的?我正在使用 postgresql,但任何类型的 SQL 都会有帮助。

最佳答案

使用两个连接:

select 
i1.new_id as referring_new_id
, i2.new_id as referred_new_id
from referrals r
inner join ids i1 on r.referring_id = i1.old_id
inner join ids i2 on r.referred_id = i2.old_id;

rextester 演示:http://rextester.com/VMJHE81524

返回:

+------------------+-----------------+
| referring_new_id | referred_new_id |
+------------------+-----------------+
| 1000 | 1001 |
| 1001 | 1002 |
+------------------+-----------------+

关于SQL JOIN 在同一列上两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47045369/

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