2013-11-04 35 views
1

我期待從一個表中獲取信息,然後使用它從第二個表中獲取數據,然後引用第二個表中的數據以獲取所有相關字段。即:SQL查詢多表表

表1

ID 
-- 
69 

表2

entity_id | id 
---------------- 
69  | 134 

表3

id | postcode | cost 
---------------------- 
134 | m21 6fh | 850 

我需要爲每一個條目我這樣做n table1。我一直在嘗試使用LEFT JOIN,直到我打到第三張桌子。請幫忙。

回答

0

嘗試以下

Select t1.*, t2.*, t3.* from table1 
left join table2 on t1.id = t2.id 
left join table3 on t1.id = t3.id -- change to t2.id = t3.id if you want to fetch only when id exists in table2 

注意,結果會改變,如果你會使用內部連接在任何地方,或使用t2.id = t3.id代替t1.id = t3.id加入關於第三個表。

0

只是嘗試了這種方式:

SELECT Table3.* FROM Table1, Table2, Table3 
WHERE table1.ID = table2.EntityId 
AND table3.id = table2.id 
0

這難道不是工作?

SELECT * 
FROM table1 
    LEFT JOIN table2 ON table1.ID = table2.entity_id 
    LEFT JOIN table3 ON table2.ID = table3.ID 

注意:如果您有table2數據,您將只獲取table3數據,這是不可避免的。

0

試試這個:

SELECT t1.*, t2.*, t3.* FROM Table1 t1 
    LEFT JOIN Table2 t2 ON t2.entity_id = t1.id 
    LEFT JOIN table3 t3 ON t3.id = t2.id