在MySQL中有条件地从一个表或另一个表中选择

时间:2014-09-06 01:05:34

标签: mysql sql

在MySQL中,如果设置了外键,如何从另一个表中选择?

我尝试做的是选择Fields.value如果Fields.value_id未设置,请从Values.value Values选择Value.id Fields.value_id }等于Fields:

我的桌子:

id | value | value_id

Values:

id | value

SELECT CASE WHEN Field.value_id = NULL OR Field.value_id = "" THEN Field.value ELSE Value.value FROM values as Value WHERE (Field.value_id = Value.id)

我的代码在这里出了什么问题?

代码:

{{1}}

1 个答案:

答案 0 :(得分:2)

一个语法错误是您遗漏了end中的case。我还认为你想要在表之间进行左连接。鉴于可获得的信息,我最好的猜测是:

SELECT (CASE WHEN f.value_id = NULL OR f.value_id = '' 
             THEN f.value 
             ELSE v.value 
        END)
FROM fields f left join
     values v
     on f.value_id = v.id;