2011-02-09 15 views
34

Czy jest możliwe użycie wielu lewych sprzężeń w kwerendzie sql? jeśli nie, to jakie jest rozwiązanie?UŻYJ WIELU LEWEGO DOŁĄCZ DO

LEFT JOIN 
     ab 
    ON 
     ab.sht = cd.sht 

Chcę dodać do atach jeszcze jedno takie zapytanie? czy to działa?

LEFT JOIN 
     ab AND aa 
    ON 
     ab.sht = cd.sht 
      AND 
        aa.sht = cc.sht 

Wil ta praca?

Odpowiedz

40

Tak, jest to możliwe. Potrzebujesz jednej ON dla każdej tabeli dołączania.

LEFT JOIN ab 
    ON ab.sht = cd.sht 
LEFT JOIN aa 
    ON aa.sht = cd.sht 

Nawiasem mówiąc moje osobiste preferencje formatowania złożonego SQL jest opisany w http://bentilly.blogspot.com/2011/02/sql-formatting-style.html. Jeśli zamierzasz dużo pisać, prawdopodobnie pomoże.

+0

Co masz na myśli? Można wyjaśnić w/kod zapytania? – cute

+0

Dodałem mały przykład kodu. – btilly

17

Tak, ale składnia jest inna niż to, co masz

SELECT 
    <fields> 
FROM 
    <table1> 
    LEFT JOIN <table2> 
     ON <criteria for join> 
     AND <other criteria for join> 
    LEFT JOIN <table3> 
     ON <criteria for join> 
     AND <other criteria for join> 
+0

Dziękujemy za wyświetlenie kryteriów ORAZ w JOINACH. Łamałem głowę, nieprawidłowo przenosząc niektóre wyszukiwane słowa do klauzuli WHERE! – Santosh

8

Wymagana SQL będzie trochę jak: -

SELECT * FROM cd 
LEFT JOIN ab ON ab.sht = cd.sht 
LEFT JOIN aa ON aa.sht = cd.sht 
.... 

Nadzieję, że to pomaga.

+1

Wyświetlanie LEFT JOIN w tym formacie, jeden po drugim, naprawdę oddaje wszystko w perspektywie. –

0

masz dwie możliwości, w zależności od kolejności tabeli

create table aa (sht int) 
create table cc (sht int) 
create table cd (sht int) 
create table ab (sht int) 

-- type 1  
select * from cd 
inner join cc on cd.sht = cc.sht 
LEFT JOIN ab ON ab.sht = cd.sht 
LEFT JOIN aa ON aa.sht = cc.sht 

-- type 2 
select * from cc 
inner join cc on cd.sht = cc.sht 
LEFT JOIN ab 
LEFT JOIN aa 
ON aa.sht = ab.sht 
ON ab.sht = cd.sht 
+0

nie działa – cute

+0

@kute zobacz zaktualizowaną odpowiedź – RichardTheKiwi

Powiązane problemy