【发布时间】:2015-12-30 07:14:12
【问题描述】:
tblEmployee 表左和 tblDepartment 表右
第一个查询:
Select Name, Gender, Salary, DepartmentName
from tblEmployee
Left Join tblDepartment
On tblEmployee.departmentID = tblDepartment.Id
Where tblEmployee.departmentID IS Null;
第二次查询:
Select Name, Gender, Salary, DepartmentName
from tblEmployee
Left Join tblDepartment
On tblEmployee.departmentID = tblDepartment.Id
Where tblDepartment.Id IS Null
我上面写的两个查询用于显示第二张图片(只有两行)中的数据。有人可以向我解释为什么上面的两个查询都会产生相同的结果吗?我理解为什么第一个查询有效,因为您只是过滤掉了部门 ID 不等于 NULL 的所有记录,并选择了部门 ID 等于 NULL 的记录。虽然对于第二个查询,我不明白 where 子句背后的想法。它如何过滤掉Employee表中为NULL的那两条记录?
【问题讨论】:
-
您发布的两个查询似乎完全相同。所以同样的结果。可能您必须再次编辑问题,发布正确的第二个查询
-
@parishodak 抱歉。刚刚更新了问题!
-
嗯不知道为什么它删除了表名称之前的所有 tbl。我也刚刚添加了它们。
-
这两个查询似乎是一样的:您是否在其中一个中漏掉了一个“NOT”?
-
@genespos 两个查询中的 where 子句不同。这就是我难以理解的。这两个 where 子句如何产生相同的结果或我用两行发布的第二张图片。
标签: mysql