2016-07-30 55 views
0

我有3個表選擇JOIN

t1 (select these records) 
------------- 
id 
offer_id 
business_id 

t2 (offer details) 
------------- 
id 
offer_details 
business_id 


t3 (business details) 
------------- 
id 
business_name 

我需要從T1的所有記錄,並從T2和T3添加信息。似乎基本,但我似乎無法得到它的權利 - 必須是熱。

SELECT t2.offer_details, t3.business_name 
FROM t2 
LEFT JOIN t1 ON (t1.offer_id = t2.id) 
LEFT JOIN t3 ON (t1.business_id = t3.id) 
+0

看起來不錯...顯示一個正確的樣本 – scaisEdge

+0

爲什麼你認爲這是錯的? – Jens

+0

我從不在t1的企業獲得結果...以及同一優惠的多次重複。 – santa

回答

1

應該

SELECT t2.offer_details, t3.business_name 
FROM t1 
LEFT JOIN t1 ON (t1.offer_id = t2.id) 
LEFT JOIN t3 ON (t1.business_id = t3.id) 

你引表爲t1,加入應根據此表

1

這個怎麼樣

Select t2.offer_details, t3.business_name 
From t1 
Left Join t2 ON (t1.offer_id = t2.id) 
Left Join t3 ON (t1.business_id = t3.id) 
1

如果你想從所有記錄t1,在您選擇的部分添加t1.*。假設在T1所有ID存在其他2個表

SELECT 
    t1.*, t2.offer_details, t3.business_name 
FROM 
    t1 
    JOIN t2 ON t2.id = t1.offer_id 
    JOIN t3 ON t3.id = t1.business_id 

修改以LEFT JOIN在如果在T1中的ID可以在T2或T3會丟失。

+0

t1只包含其他表中記錄的ID。 – santa

+0

然後刪除't1。*'。您應該獲取t1上列出的所有優惠ID和商家ID。 – maresa