mysql - 还显示具有 NULL 值的行

标签 mysql sql

当我在没有 where 子句的情况下点击下面的代码时,它显示具有 NULL 值的行但是当我像下面这样放置 where 子句时,没有具有 NULL 值的行。

我希望带有 NULL 值的行带有 where 子句。

SELECT * 
FROM project_category as a 
LEFT OUTER JOIN  project_estimate_detail  as b 
  ON a.id = b.project_cat_id 
where b.project_cat_id not in ('21','22','2')

最佳答案

试试这个:

SELECT * 
FROM project_category as a 
LEFT OUTER JOIN  project_estimate_detail  as b 
   ON a.id = b.project_cat_id 
where (b.project_cat_id IS NULL) OR (b.project_cat_id not in ('21','22','2'))

b.project_cat_idNULL 时,NOT IN 的计算结果为 NULL。因此,您必须使用 IS NULL 表达式显式检查 NULL

关于mysql - 还显示具有 NULL 值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35547037/

相关文章:

php - 我的类(class)无法连接到数据库?

php - 表单验证与依赖外键约束

mysql - 如何使用 Xampp shell 将 CSV 文件插入 Mysql

java - 根据 MS Access 数据库中的月份部分选择行

mysql - 查询第一名、第二名、第三名,并使用第二个和第三个最低值,每次都在一行上

mysql - sqlsrv 从表中找出最大值

php - 如何在sql查询中使用速记三元运算符php?

mysql - SQL 请求被截断

使用 INSERT INTO 的 SQL 查询语法错误

sql - 多列平均值