“IS NULL”无法正常工作

时间:2017-09-30 14:56:26

标签: mysql

所以我一直在这里寻找并且无法弄清楚为什么这不起作用并且想知道它是我的语法还是MySQL工作台的问题。我从多个表中提取信息,但我无法使“无效”工作。 “is not null”工作正常,并且“来自employee_id为null的订单的SELECT *”可以正常工作。

select orders.order_id, orders.order_date, orders.shipped_date, 
customer_last_name, employees.employee_id
from customers
join orders on
customers.customer_id = orders.customer_id
join employees on
orders.employee_id = employees.employee_id
where orders.employee_id is null;
像我提到的那样,在上面,“is not null”正常工作,所以“null”应该工作正常太正确了吗?顺便提一下,实际上是空数据。

3 个答案:

答案 0 :(得分:0)

如何比较2个空值?

join employees on orders.employee_id = employees.employee_id
where 
   orders.employee_id is null;
对于null,

orders.employee_id = employees.employee_id不是我想的正确的子句。它将排除null值。

答案 1 :(得分:0)

你的加入中有一点错误。试试这个或使用左连接操作:

select orders.order_id, orders.order_date, orders.shipped_date, 
customer_last_name, employees.employee_id
from customers, orders, employees
where customers.customer_id = orders.customer_id
and employees.employee_id is null 
and orders.employee_id is null;

检查你的计划: enter image description here

答案 2 :(得分:0)

在我提出这个问题之后,我几乎立即想出来了。我加入了一个我不需要的表,因此,该表排除了空数据,因为它匹配了我需要查询的内容。我会发布正确的代码并将其保留,以防其他人遇到类似的问题

select orders.order_id, orders.order_date, orders.shipped_date, 
customer_last_name
from customers
join orders on
customers.customer_id = orders.customer_id
where orders.employee_id is null;