2016-06-21 27 views
2

問候SQL SELECT工會同桌

我有以下表

客戶

id, name, saler1, saler2, saler3, dateSale... 

人員

id, name... 

我查詢

select S1.*, S2.* 
from Client C 
left join Personnel S1.id on = C.saler1 
left Join Personnel S2.id on = C.saler2 

我的結果是

S1.id, S1.name ... S2.id, S2.name 

,但我想例如只有一列Personnel

|id | name | 
|sa1| name | 
|sa2| name | 

有人能幫助我嗎?

回答

1

不能完全確定你所要求的,但是從你已經寫我想查詢你是這樣的事情後.....

Select * 
FROM (
SELECT id, name, saler1 AS Saler, dateSale FROM Client Where saler1 IS NOT NULL 
UNION ALL 
SELECT id, name, saler2 AS Saler, dateSale FROM Client Where saler2 IS NOT NULL 
UNION ALL 
SELECT id, name, saler3 AS Saler, dateSale FROM Client Where saler3 IS NOT NULL 
) C 
Left join Personnel P on P.id = C.saler 

因爲這是你想要做同樣的事情是使用UNPIVOT類似的另一種方式圓滑....

Select P.* , up.id, up.dated 
FROM Client UNPIVOT (
         Salers for Saler IN (Saler1,Saler2,Saler3) 
        )up 
LEFT JOIN Personnel P ON up.Salers = P.id 
+0

謝謝,這是答案 – eezzekl

0

我猜你正在尋找一個聯盟所有

select S1.* From Client C Left join Personnel S1.id on = C.saler1 
UNION ALL 
select S1.* From Client C Left join Personnel S1.id on = C.saler2