2016-01-31 25 views
0

我似乎無法弄清楚如何連接這兩個表來執行並通過單個查詢返回所需的一個有效內容。任何幫助將非常感激。如何加入SQL表

正如你將看到的一切工作與查詢的前半部分,如果我放置一個;在「IN」後面的右括號末尾。

但是,當我去與另一張表propA_Photos一起加入這張表時,MySQL會拋出錯誤。我只想在一個查詢中將propA_Photos.photo列與上面的內容連接起來。

我在做什麼錯?

SELECT propA.list_id, propA.list_key, propA.list_value 
FROM propA 
where list_id = '20141118214124325535000000' 
    AND list_key IN ('LIST_1', 'LIST_22', 'LIST_33', 'LIST_31', 'LIST_34', 'LIST_35', 'LIST_36', 'LIST_37', 'LIST_39', 'LIST_40', 'LIST_43', 'LIST_41', 'LIST_46', 'LIST_47') 
INNER JOIN propA_Photos.photo; 
+0

如何將兩個表相關的? –

+1

無論如何,'WHERE'在'JOIN'之後,你不能加入列。 –

回答

0

您錯過了一個連接子句,我不確定您的數據庫是否正常。

SELECT 
    propA.list_id, propA.list_key, propA.list_value 
FROM propA 
INNER JOIN propA_Photos.photo 
     ON propA_Photos.<<Attr1>> = propA.<<Some_Attribute>> 
WHERE list_id = '20141118214124325535000000' 
    AND list_key IN (.. lot of stuff...) 
+0

雖然你的方法似乎最好,但我不會返回信息,除非將INNER更改爲LEFT,即使此時它只會返回propA表數據而不是附加列中的propA_Photo數據。任何想法這可能是什麼? – VickenCode

+0

如果在使用LEFT JOIN時返回空屬性,並且在使用INNER Join時沒有任何屬性,最可能的原因是因爲您的連接子句不正確。 –

+0

像@jpw所提到的,Join子句通常使用主鍵/外鍵。 你可能正在尋找的東西,如: ON propA_Photos.photo_id = propA.photo_id ON propA_Photos.id = propA.photo_id 或類似的東西 –

0

當連接表時,您需要遵守操作符的特定語法和順序。

where子句應該遵循join子句,並且您需要指定確定如何使用on子句連接表的條件。

你可能想是這樣的:

SELECT propA.list_id, propA.list_key, propA.list_value 
FROM propA 
INNER JOIN propA_Photos.photo ON propA.some_column = propA_Photos.some_column 
-- the join should likely by using primary key = foreign key 
WHERE list_id = '20141118214124325535000000' 
    AND list_key IN (
    'LIST_1', 'LIST_22', 'LIST_33', 'LIST_31', 
    'LIST_34', 'LIST_35', 'LIST_36', 'LIST_37', 
    'LIST_39', 'LIST_40', 'LIST_43', 'LIST_41', 
    'LIST_46', 'LIST_47' 
    );