2011-02-06 15 views
18

Jak utworzyć dwa wewnętrzne połączenia w jednym zapytaniu?Dwa wewnętrzne połączenia MYSQL

Ie: trzy tabele

faktury
Adres
Client

Faktura ma kolumnę, która odwołuje się identyfikator w klientów. Ma również kolumnę, która odnosi się do adresu. Potrzebuję pobrać nazwę klienta z dopasowanej tabeli i adres z dopasowanej tabeli. Jak mogę INNER JOIN obu tabel?

dodam kilka szczegółów ...
faktura zawiera wiersze adres (adres odniesienia id), identyfikator klienta (referencje), identyfikator klienta i zauważa klient ma wiersze FIRST_NAME LAST_NAME adres ma rzędy street_name i miasto

muszę podciągnąć

+0

Potrzebujesz więcej danych. –

Odpowiedz

29

Możesz mieć tyle klauzul JOIN, ile potrzebujesz w zapytaniu. Każdy ma klauzulę ON, w której można określić powiązane kolumny między połączonymi tabelami.

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

Nie wiedziałem o tym. Dobrze wiedzieć. Dzięki! – Yoshiyahu

8

coś takiego:

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 

nie zapomnij wybrać tylko te pola, które wymagają, a nie * (wszystkie).

+0

Czy to działa bez drugiego WŁĄCZENIA? – Yoshiyahu

+0

Ups, zapomniałem dodać. Zobacz edycję. – Prisoner

+0

Zadziałało, dziękuję –

Powiązane problemy