2011-10-07 15 views
5

Szukam sposobu na wykonywanie wielu sprzężeń z jednej tabeli źródłowej do więcej niż jednej tabeli. Podobny do następującego:SQL Server wielokrotny LEWY JOIN, jeden do wielu

SELECT a.NAME, b.address, c.phone 
FROM tblname a 
LEFT JOIN tbladdress b ON a.nid = b.nid 

Chcę również wykonać LEFT JOIN na stole Telefon tblPhone w tym samym czasie:

tblname a left join tblPhone c on a.PID = c.PID 

spróbować, jak mogę nie mogę zobaczyć, jak to ująć w jedno zapytanie.

+0

Jeśli nazwa ma 6 adresy i 5 telefonów związane co chcesz wynik będzie ? 30 wierszy z każdą permutacją? –

+0

W tym scenariuszu adres i telefon są niepowtarzalne/jedna wartość. Dziękuję wszystkim za sugestie Mam to działa z odpowiedzią RedFilter –

Odpowiedz

15

można po prostu powtórzyć swoje klauzule JOIN tyle razy, ile jest to konieczne, np:

SELECT a.NAME 
    ,b.address 
    ,c.phone 
FROM tblname a 
LEFT JOIN tbladdress b ON a.nid = b.nid 
LEFT JOIN tblPhone c ON a.PID = c.PID 
2
SELECT a.name, b.address, c.phone 
FROM tblname a 
left join tbladdress b on a.nid = b.nid 
left join tblPhone c on a.PID = c.PID; 
+0

Sky jest granicą. Po prostu nie przekraczaj 42 złączeń. –

0
SELECT a.name, b.address, c.phone 
FROM (tblname a 
    left join tbladdress b on a.nid = b.nid) c 
left join tblPhone d on c.PID=d.PID 
Powiązane problemy