2017-08-08 90 views
0

假設我有一個表A作爲 '字典':SQL如何翻譯多列?

A type code name 
    1  a  x 
    1  b  y 
    2  a  z 
    2  b  t 

我想下面的表B中的人名翻譯:

B c1  c2 
    a  a 
    a  b 
    b  b 

哪裏B.c1是A的代碼type = 1,B.c2是A.type = 2的代碼。

預期的結果是

x z 
x t 
y t 

如果只有一個B中需要翻譯列,很容易。

SELECT A.name 
FROM A, B 
WHERE A.type = 1 
    AND B.c1=A.code 
+0

很難understan你有什麼想法。你知道'樞軸'的概念嗎? –

+0

@JacekCz號我絕對新的SQL。 –

+0

您可以張貼樣本數據和預期的結果呢? – Tomato32

回答

2

使用連接;

select a1.type,b.c1,a2.type,b.c2 from b 
left outer join a as a1 on b.c1= a1.code and a1.type=1 
left outer join a as a2 on b.c2= a2.code and a2.type=2 
+1

使用_joins_,不_join statements_。 – jarlh