我有一个表,我希望根据一列的值加入不同的表,就像这样(这不起作用,但这是我的例子):
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 :(得分: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'