1

例如有一个主表:

+----+---------+
| Id | column1 |
+----+---------+
|  1 | a       |
|  2 | b       |
|  3 | c       |
+----+---------+

还有一个要加入的表:

+----+---------+
| Id | column2 |
+----+---------+
|  1 | Value   |
|  2 | NULL    |
+----+---------+

column2 包含字符串值,但这里的 NULL 值是 NULL 类型,而不是“NULL”字符串。

所以我想在两个表连接后实现的是这样的表:

+----+---------+-------------+
| Id | column1 | column2     |
+----+---------+-------------+
|  1 | a       | Value       |
|  2 | b       | Null Value  |
|  3 | c       | Not Exist   |
+----+---------+-------------+

MySQL 是否有一种可能的方法来区分列中的 NULL 值和不存在的列?

4

1 回答 1

4
SELECT
    m.Id, m.column1,
    CASE WHEN s.Id IS NULL 
             THEN 'Not Exists'
         WHEN s.column2 IS NULL
             THEN 'Null Value'
         ELSE s.column2
    END AS column2
FROM 
    mainTable AS m
  LEFT JOIN
    secondTable As s
      ON s.Id = m.Id ;

SQL-Fiddle中测试

于 2013-06-18T09:52:05.323 回答