2017-04-12 92 views
0

我確定我錯過了一些重要的事情,所以任何建議,歡迎。我有一個基表可以稱之爲Content_1,另外兩個表稱爲Content_2和Content_3。 Im試圖做的是從table_2中獲取匹配表1中id的所有結果,並將來自table_3的所有結果添加到此結果集中,這些結果也與來自table_1的id匹配。基本上在最終結果中有一個OR條件 - 從表2中返回與表1中ID相匹配的所有內容,或者返回表3中與表1中ID相匹配的所有內容。但是,我看到沒有結果返回,所以我的猜測是我們做了第一次加入然後第二次加入應用於第一次加入後返回的結果集,而不是初始加入。MySql內連接2表

SELECT * FROM Content_1 
JOIN Content_2 ON Content_1.id = Content_2.id 
JOIN Content_3 ON Content_1.id = Content_3.id 
+0

使用'LEFT OUTER JOIN'而不是'INNER JOIN'。然後這會說「給我所有來自'content_1'的結果,並且只有'content_2'和'content_3'的結果符合這個連接條件。目前使用你的'INNER JOIN',你只是說「只有當這兩個連接條件從它們各自的表中返回記錄時,纔給我記錄」。 – JNevill

回答

1

您可能想要UNION而不是加入所有3個表。

SELECT Col1, Col2 
FROM Content_1 
JOIN Content_2 ON Content_1.id = Content_2.id 
UNION 
SELECT Col1, Col2 
FROM Content_1 
JOIN Content_3 ON Content_1.id = Content_3.id 
+0

感謝您的回答,我設法解決左連接的問題,並在哪裏條件,但工會也是可行的選擇。 – tslid