繁体   English   中英

为什么SQL查询SELECT不返回IS NULL结果

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM