[英]Why SQL query SELECT dont return IS NULL result
我需要显示在同一部门没有指定主管的员工列表
Table: employee
Fields:
id INT(pk),
department_id INT,
chief_id INT,
name Varchar(100),
salary INT
查询:
SELECT One.name AS Employee,One.department_id, Two.name AS Chief, Two.department_id
FROM employee One, employee Two
WHERE (One.chief_id = Two.id AND One.department_id != Two.department_id) OR One.department_id IS NULL;
SELECT One.name AS Employee,One.department_id, Two.name AS Chief, Two.department_id
FROM employee One
LEFT JOIN employee two ON One.chief_id = Two.id
WHERE NOT EXISTS (
SELECT 0 FROM employee two
where One.department_id = Two.department_id
AND One.chief_id = Two.id
)
尝试跟随;)
SELECT One.name AS Employee,One.department_id, Two.name AS Chief, Two.department_id
FROM employee One, employee Two
WHERE One.chief_id = Two.id AND (One.department_id IS NULL OR One.department_id <> Two.department_id);
下面的查询可能会提供所需的结果:
SQL服务器 :-
SELECT One.name AS Employee,One.department_id, Two.name AS Chief, Two.department_id
FROM employee One, employee Two
WHERE (One.chief_id = Two.id AND One.department_id != Two.department_id) OR ISNULL(One.department_id,0)=0;
MYSQL :-
SELECT One.name AS Employee,One.department_id, Two.name AS Chief, Two.department_id
FROM employee One, employee Two
WHERE (One.chief_id = Two.id AND One.department_id != Two.department_id) OR IFNULL(One.department_id,0)=0;
尝试查询
SELECT
Two.name AS Employee,
Two.department_id AS Employee_Dept,
One.name AS Chief_Name,
One.department_id AS Chif_Dept
FROM
employee ONE
INNER JOIN employee Two
ON One.id = Two.chief_id
AND One.department_id != Two.department_id ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.