2011-02-06 32 views
18

İki iç birleşmeyi bir sorguda nasıl önceden oluşturabilirim?İki İç Bağlantı MYSQL

Yani: üç tablo

Fatura
Adres
Müşteri

Fatura müşteriler bir kimliği başvuran bir sütun vardır. Ayrıca bir adrese başvuran bir sütuna da sahiptir. Eşleşen tablodan ve eşleşen tablodaki adreslerden hem istemcilerin adını almam gerekir. Her iki masada nasıl INNER JOIN olur?
fatura satırları adresi (referanslar kimliği ele), istemci (referanslar istemci kimliği), kimliği var ve müşteri satırları FIRST_NAME sahip notları Birkaç ayrıntılandıracağız

... adres satırları STREET_NAME ve şehir sahiptir last_name yalnızca * (tümü), size gereken alanları değil seçmek

SELECT 
    c.*, i.*, a.* 
FROM 
    invoices i 
INNER JOIN 
    client c 
ON 
    i.clientid = c.clientid 
INNER JOIN 
    address a 
ON 
    a.clientid = c.clientid 
WHERE 
    i.id = 21 

seni unutma:

ben gibi

+0

Daha fazla veri gerekiyor. –

cevap

29

Sorguda istediğiniz kadar çok JOIN yan tümcesi olabilir. Her birinde, birleştirilen tablolar arasında ilgili sütunları belirttiğiniz bir AÇIK yan tümcesi vardır.

SELECT 
    columns 
FROM 
    invoice 
INNER JOIN 
    address 
ON 
    join_condition 
INNER JOIN 
    client 
ON 
    join_condition 
+0

Bunun farkında değildim. Bilmek güzel. Teşekkürler! – Yoshiyahu

8

Something yukarı çekmek gerekir.

+0

Bu, ikinci bir ON olmadan çalışır mı? – Yoshiyahu

+0

Whoops, bunu eklemeyi unuttu. Düzenleme konusuna bakın. – Prisoner

+0

Çalıştı, teşekkürler –

İlgili konular