2011-11-02 17 views
13

Şu anda bu soruyu yapıyorum: LEFT JOIN 2'den fazla tablo ile nasıl yapılır?

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 

Ancak "a" ile "c" arasındaki birleşimden dolayı alınmayan "ac = null" olsa bile "a" tablosundan kayıtları almak istiyorum ".

"Sol birleştirme" hakkında bilgi buldum (http://www.w3schools.com/sql/sql_join_left.asp) ama sorgunun iki tablodan daha fazlasını içerdiğinde nasıl yapılacağını bilmiyorum bu durumda.

Herhangi bir yardım veya rehberlik büyük takdir edilecektir.

+2

İki birleştirme deyimi kullanamaz mısınız? 'SELECT xyz FROM table_a LEFT JOIN table_b ON xyz = xyz LEFT JOIN table_c ON xyz = xyz' [MySQL kılavuzu] 'na bir göz atın (http://dev.mysql.com/doc/refman/5.0/en/join. html) – dwalldorf

+2

Bu sorunun ne gerektiğini biliyor musun? Daha fazla yinelenen cevaplar;) – Phil

cevap

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 * ilk * doğru cevap için – Phil

+0

Eğer sayıdan gelen sonuçların içinde hiçbir şey yoksa, ama yine de sonuçların “müşteri” iken hala LEFT katılmadan numbergroup'a ulaşmanız gerekir. '? Bu, bu durumda işe yaramaz! –

+0

Bu çok yardımcı oldu teşekkürler –