连接条件的顺序将导致不同的结果

iri*_*ent 0 sql sql-server join

select s.staff_name, s2.staff_name 'supervisor name'
from staff_relation s, staff_Relation s2
where s.staff_no = s2.supervisor
Run Code Online (Sandbox Code Playgroud)

select s.staff_name, s2.staff_name 'supervisor name'
from staff_relation s, staff_Relation s2
where s.supervisor = s2.staff_no 
Run Code Online (Sandbox Code Playgroud)

它们都提供不同的结果.为什么会这样?

更新:不知道是否有帮助,

表图像链接 此图像是我创建的一个小表.

上面是我创建的小桌子的图像.

当我做第一个命令时,它显示Anita是Ruth的主管.哪个错了.但是当我做第二个命令时,它正确显示,露丝是安妮塔的主管.

Dan*_*man 6

您不仅更改了连接条件的顺序,还更改了所选表的列.结果不同,因为查询不同.

如果翻转ss2SELECT以同样的方式,你在翻转它WHERE,你会得到相同的结果.

这是你的两个查询,只有表别名改变了:

select EMPLOYEE.staff_name, SUPERVISOR.staff_name 'supervisor name'
from staff_relation EMPLOYEE, staff_Relation SUPERVISOR
where EMPLOYEE.staff_no = SUPERVISOR.supervisor
Run Code Online (Sandbox Code Playgroud)

select EMPLOYEE.staff_name, SUPERVISOR.staff_name 'supervisor name'
from staff_relation EMPLOYEE, staff_Relation SUPERVISOR
where EMPLOYEE.supervisor = SUPERVISOR.staff_no 
Run Code Online (Sandbox Code Playgroud)

看看为什么#2会给你正确的结果但#1现在没有?