在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,但仍然没有工作。
答案 0 :(得分:1)
我认为在这种情况下,子选择将比JOIN
更好。您可以使用CASE
语句,其中包含SELECT
。