mysql是否覆盖IF ELSE以动态选择表格?
link这里显示的是IF THEN是否为值,但IF THEN / IF ELSE如何能够选择如下表所示:
例如,动态表格为“ othertable ”
SELECT t1.etc,t2.etc,othertable.etc
FROM table1 AS t1,table2 AS t2, IF(t1.value=3,table3,table4) AS othertable
WHERE othertable.table1_id = t1.id
答案 0 :(得分:0)
你可以通过工会实现这样的目标。
SELECT t1.* FROM table1 t1
JOIN table_a ta ON (...)
WHERE t1.value = 3
UNION ALL
SELECT t1.* FROM table1 t1
JOIN table_b tb ON (...)
WHERE t1.value = 2
对于t1.value = 3的每一行,与table_a的连接完成,对于t1.value = 2的每一行,table_b被连接。工会将结果加在一起。
您只需要确保这两个条件是互斥的。如果您无法确保这一点,则可以使用UNION而不是UNION ALL来删除结果集中的重复项。