2012-10-11 79 views
0

我有一個表,我想加入這取決於一列的值不同的表,像這樣(這是不行的,但它是我的例子):MySQL左連接在CASE中?

SELECT * FROM table1 JOIN (CASE WHEN table1_column1=1 THEN table2 ON table2_column1=table1_column2 END) WHERE table1_column3='hello'

所有的一切有在列中將是4個值,調用其他表。這是可行的嗎?

編輯:我想我需要澄清我後。根據table1_column1的值,我希望JOIN獲取特定的表和列。例如,如果t1c1 = 1,它應該在table1_column2上連接table2_column1。但是,如果t1c1 = 2,它應該在table1_column2上連接table5_column1。等等,等等。

再次 - 這是可行的嗎?如果我使用兩個單獨的查詢,很容易編寫腳本。但是,我只想使用一個查詢。

+0

你怎麼看到的結果集?你是否意識到,如果它以這種方式工作 - 那麼不同的行將包含不同數量的列 – zerkms

回答

0
SELECT * FROM 
table1 JOIN table2 ON table2_column1=table1_column2 AND table1_column1=1 

UNION 

SELECT * FROM 
table1 JOIN table3 ON table2_column1=table1_column2 AND table1_column3='hello' 

它可能工作

0
SELECT * FROM table1 
JOIN table2 ON table2_column1=table1_column2 and table1_column1=1 
WHERE table1_column3='hello'