繁体   English   中英

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

[英]Conditionally select from one table or another in MySQL

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

我正在试图做的是选择Fields.value如果Fields.value_id没有设置,否则选择Values.valueValues其中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)

一种语法错误是您错过了caseend 我还认为您希望在表之间保持左连接。 根据可用信息,我的最佳猜测是:

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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM