2011-02-06 271 views
18

我該如何在一個查詢中執行兩個內部連接?兩個內部連接MYSQL

即:三個表

發票
地址
客戶

發票有它引用的ID在客戶端中的一列。它也有一個引用地址的列。我需要從匹配表中獲取客戶端名稱以及匹配表中的地址。我怎麼會INNER JOIN這兩個表?

我會添加一些細節...
發票具有行地址(引用地址ID),客戶端(客戶端引用ID),ID和指出 客戶有行名字,姓氏 地址具有行STREET_NAME和城市

我需要拉起

+0

需要更多數據。 – 2011-02-06 23:32:06

回答

29

您可以在查詢中擁有儘可能多的JOIN子句。每個都有一個ON子句,用於指定連接表之間的相關列。

SELECT 
    columns 
FROM 
    invoice 
INNER JOIN 
    address 
ON 
    join_condition 
INNER JOIN 
    client 
ON 
    join_condition 
8

喜歡的東西:

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 

不要忘記你只選擇您需要的領域,而不是*(所有)。

+0

這個工作沒有第二個ON? – Yoshiyahu 2011-02-06 23:34:52

+0

哎呀,忘了補充一點。請參閱編輯。 – Prisoner 2011-02-06 23:36:27