2017-10-31 1 views
1

내가 [공개] 테이블을 말해봐. [IDS] 고객 ID의 매핑SQL이 같은 열을 두 번 가입

public.ids

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

나는 또한 추천 테이블 곳이와 고객이 다른과 같이 참조 할 때 나는 하나의 행 로그 :

public.referrals

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

이 표가 새로운 ID를 사용하여 어떻게 생겼는지 알고 싶습니다. 따라서 추천 표에 두 번 가입해야합니다. references_id에 한 번, referenced_id에 한 번.

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

가 어떻게이 새로운 열의 정의의 이름으로이 작업을 수행 할 수

결과 : 궁극적으로,이처럼 보이는 테이블을 줄까? 내가 postgresql을 사용하고 있지만, SQL의 맛이 도움이 될 것입니다.

답변

4

이 사용 조인 :

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 | 
+------------------+-----------------+ 
+0

대만족! 내가 어떻게 생각하지 않았어? – user3685285