2012-03-16 108 views
0

我有一個名爲客戶與列的表像這樣sql查詢問題加入

CustomerID primaryCustID Phonenumber Mobilenumber 
1    1    11111  983433453 
2    2    22222  564647844 
3    3    33333  983344354 
4    4    44444  983434232 
5    2    55555  983436790 
6    4    66666  983431111 
7    4    77777  983434444 
8    8    88888  983437777 
9    3    99999  983439999 

現在我需要得到輸出這樣

CustomerID primaryCustID Phonenumber1 Mobilenumber1  Phonenumber2  Mobilenumber2 
5    2    55555  983436790   22222   564647844 
6    4    66666  983431111   44444   983434232 
7    4    77777  983434444   44444   983434232 
9    3    99999  983439999   33333   983344354 

select e.CustomerID, m.primaryCustID ,e.Phonenumber1 "Phonenumber1", 
e.Mobilenumber "Mobilenumber1", m.Phonenumber1 "Phonenumber2", 
m.Mobilenumber "Mobilenumber2" from Customer e, 
Customer m where e.CustomerID<>m.primaryCustID 

我想這樣的,但沒有得到除外結果

任何想法如何解決這個問題,anyhelp將是巨大的。

感謝

王子

回答

3

你忘了加上join條件與CustomerID連接primaryCustID

select C1.CustomerID, 
     C1.primaryCustID, 
     C1.Phonenumber as Phonenumber1, 
     C1.Mobilenumber as Mobilenumber1, 
     C2.Phonenumber as Phonenumber2, 
     C2.Mobilenumber as Mobilenumber2 
from Customer as C1 
    inner join Customer as C2 
    on C1.primaryCustID = C2.CustomerID 
where C1.CustomerID <> C1.primaryCustID 
+1

+1還有一個理由使用正確的** ANSI ** JOIN語法,它強制您考慮您的JOIN條件! – 2012-03-16 07:57:46

+0

謝謝像cham一樣! – happysmile 2012-03-16 10:29:54