2011-11-02 10 views
13

Obecnie robie to zapytanie:Jak wykonać LEFT JOIN z więcej niż 2 tabelami?

select a.x, b.x, c.x 
from number as a, customer as b, numbergroup as c 
where a.b = b.b and a.c = c.c and c.b = b.b 

Jednakże chcę, aby pobrać rekordy z tabeli „a” nawet jeśli „ac = null”, które nie są pobierane z powodu sprzężenia między „a” i " do".

Znalazłem informacje na temat "left join" (http://www.w3schools.com/sql/sql_join_left.asp), ale nie wiem jak to zrobić, gdy kwerenda dotyczy więcej niż dwóch tabel, takich jak w tym przypadku.

Każda pomoc lub wskazówki będą mile widziane.

+2

Nie możesz użyć dwóch instrukcji złączenia? 'SELECT xyz FROM table_a LEFT JOIN table_b ON xyz = xyz LEFT JOIN table_c ON xyz = xyz' Spójrz na [podręcznik MySQL] (http://dev.mysql.com/doc/refman/5.0/en/join. html) – dwalldorf

+2

Wiesz, jakie jest to pytanie? Więcej zduplikowanych odpowiedzi;) – Phil

Odpowiedz

32
select a.x, b.x, c.x 
from number as a 
left join customer as b on a.b = b.b 
left join numbergroup as c on a.c = c.c and c.b = b.b 
+5

+1 dla * pierwszej * poprawnej odpowiedzi – Phil

+0

Co zrobić, jeśli wyniki z 'number' nie zawierają niczego, ale nadal musisz uzyskać wyniki od' customer', a jednocześnie LEFT dołączając do 'numbergroup '? To nie działa w takim przypadku! –

+0

To było bardzo pomocne dzięki –