根据字段值更改mysql表连接

时间:2011-01-17 12:58:22

标签: mysql sql join

在MySQL中是否可以根据记录特定字段中的内容更改表的JOIN?

示例:

SELECT 
CASE table0.status
WHEN 1 THEN table1.id
WHEN 2 THEN table2.id
END
FROM 
table0, table1, table2
IF (table0.status = 1, INNER JOIN queue ON table1.id = table0.product, INNER JOIN queue ON table2.id = table0.product)

如果table0中的'product'的值为1,则表示联接表为table1;如果table0中'product'的值为2,则需要table2。

当我尝试上面的例子时,我只得到mysql语法错误。我也尝试用CASE语句而不是IF,但仍然没有工作。

1 个答案:

答案 0 :(得分:1)

我认为在这种情况下,子选择将比JOIN更好。您可以使用CASE语句,其中包含SELECT