MySQL LEFT JOIN in CASE?

时间:2012-10-11 03:02:54

标签: mysql

我有一个表,我希望根据一列的值加入不同的表,就像这样(这不起作用,但这是我的例子):

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。等等,等等。

再次 - 这可行吗?如果我使用两个单独的查询,它很容易编写脚本。不过,我只想使用一个查询。

2 个答案:

答案 0 :(得分: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'

它可能有效

答案 1 :(得分:0)

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