假设我有一个表[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是什么样的。这意味着我必须两次加入推荐表。一次用于refer_id,一次用于referenced_id。最终,我想要一个看起来像这样的表:
结果
referring_new_id | referred_new_id
==================================
1000 | 1001
1001 | 1002
如何使用这些新列的自定义命名来实现此目的?我正在使用postgresql,但任何类型的SQL都会有所帮助。
答案 0 :(得分:5)
使用两个连接:
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 |
+------------------+-----------------+