2012-03-16 10 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 было бы здорово.

Благодаря

Prince

ответ

3

Вы забыли добавить join условие, которое соединяет primaryCustID с CustomerID.

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! –

+0

Спасибо, работы, как cham! – happysmile