2013-05-07 31 views
0

我正在創建我的第一個php mysql web應用程序,並不太熟悉如何使用sql JOIN。以下是表佈局:如何正確使用連接查詢mysql InnoDB

表1: PK saleid

表2: PK stockid

表3: PK saleFK PK stockFK

我已經建立的關係,使得table3.saleFK是table1.saleid的外鍵,table3.stockFK是table2.stockid的外鍵。我如何編寫一個連接函數來在表1中的單一銷售表的表2中提取相關的stockid?

這很難用語言表達,如果您需要進一步解釋,請告訴我。我很感激你的幫助。

回答

2
SELECT * 
FROM Table3 t3 
INNER JOIN Table2 t2 ON (t2.stockid = t3.stockid) 
INNER JOIN Table1 t1 ON (t1.saleid = t3.saleid) 

我想這就是你要求的。這應該返回表3中的所有數據以及從表1和表2中加入的相關數據。

+0

這是否會返回表2中所有行的數組,該數組通過表3鏈接到我的pk?我需要一個where table.saleid = ..? – jfur7 2013-05-07 22:28:44

+0

剛剛嘗試過,這是我得到的一個錯誤:未知列'where.subs''where子句' SELECT * FROM('vehicles')INNER JOIN'vehicle_sale' ON'vehicle_sale'.vehicleFK' ='vehicles'.'stockid' INNER JOIN'sales' ON'sales'.'saleid' ='vehicle_sale'.'''aleFK' WHERE'''sale''''saleid' ='25744661' – jfur7 2013-05-07 22:43:37

+0

您的餐位是'sales',但您把'sale.saleid',你需要'sales.saleid' – Leeish 2013-05-07 22:51:47