2016-02-02 29 views
0

我有一個表C,其中包含表A的ID以及表B的ID。如何選擇所有唯一行並將ID更改爲表A的相應名稱和B.將ID從兩個不同的表更改爲名稱的查詢

table contain IDs Table A   Table B 
    ---------------  --------------- --------------- 
    A_id | B_id  A_id | Name  B_id | Name 
    ---------------  --------------- --------------- 
    1  | 2  1  | AA  1  | a 
    1  | 4  2  | BB  2  | b 
    3  | 2  3  | CC  3  | c 
    3  | 1  4  | DD  4  | d 
    3  | 1     

的結果必須是

--------------- 
    A_Name | B_Name 
    -------------- 
    AA  | b 
    AA  | d 
    CC  | b 
    CC  | a 

的幫助非常感謝。

回答

0

你需要的是
INNER JOIN的INNER JOIN關鍵字選擇兩個表中的所有行,只要有兩個表中的列之間的匹配。
DISTINCTDISTINCT關鍵字可用於僅返回不同的(不同的)值。

select distinct a.name,b.name 
from c 
inner join b using(b_id) 
inner join a using(a_id) 

去通過PostgreSQL - JOINS獲取更多信息。

0

的一種方法是在所有三個表加入:

SELECT DISTINCT A.name, B.name 
FROM A 
INNER JOIN C 
ON A.A_id = C.A_id 
INNER JOIN B 
ON B.B_id = C.B_id 

在「DISTINCT」關鍵字消除重複(具體地,在表C中的最後兩行)。

此查詢適用於我的樣本數據。

相關問題