MySql - 使用IF ELSE进行动态表选择

时间:2014-10-17 08:12:47

标签: php mysql dynamic relational-database

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

1 个答案:

答案 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来删除结果集中的重复项。