mysql - IF 内的子查询作为具有空值的列的值

标签 mysql if-statement subquery

给定:

t1{id,type}
t2{type,table1_id}

我正在使用这个:

SELECT IF(t1.type IS NULL, 'some default', t1.type) as ret from t1

我想做这样的事情:

SELECT IF(
    t1.type IS NULL, 
    IF(
        (SELECT t2.type FROM t2 WHERE t2.table1_id=t1.id LIMIT 1) IS NOT NULL,
        table2.type,
        'some defaults'
    ),
    t1.type
) as ret from table1

最佳答案

这个——

SELECT IF(
    t1.type IS NULL, 
    IF(
        (SELECT t2.type FROM t2 
           WHERE t2.table1_id=t1.id LIMIT 1)
           IS NOT NULL,
        t2.type,
        'some defaults'),
    t1.type
) as ret from t1, t2 where t1.id = t2.table1_id

好像work .

关于mysql - IF 内的子查询作为具有空值的列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13693936/

相关文章:

mysql - 将 IF 放入选择查询中

c# - 运算符 ||不能应用于类型 bool 和 string/string 和 string

sql - 我们可以在 SELECT 和 FROM 之间写子查询吗

MySQL 使用具有多个返回行的子查询更新字段值

c# - 带有子查询和别名的 NHibernate QueryOver

mysql - 访问数据MySQL。卡住构建

时间:2019-03-17 标签:c#mysql获取所有行

php - 连接mysql中的两个表并在表中显示答案

php - 将字符串拆分为格式化字母以用于 Where IN 查询

Javascript 简单 If Else insideHTML == 'something' 不起作用