select s.staff_name, s2.staff_name 'supervisor name'
from staff_relation s, staff_Relation s2
where s.staff_no = s2.supervisor
和
select s.staff_name, s2.staff_name 'supervisor name'
from staff_relation s, staff_Relation s2
where s.supervisor = s2.staff_no
它们都提供不同的结果。为什么会这样?
更新:不知道是否有帮助,
Table image link 这张图片是我创建的一张小桌子。
上面是我创建的小桌子的图像。
当我完成第一个命令时,它显示Anita是Ruth的主管。哪个错了。但是当我做第二个命令时,它正确显示,露丝是安妮塔的主管。
答案 0 :(得分:6)
您不仅更改了连接条件的顺序,还更改了所选表的列。结果不同,因为查询不同。
如果您在s
中使用s2
翻转SELECT
,就像在WHERE
中翻转select EMPLOYEE.staff_name, SUPERVISOR.staff_name 'supervisor name'
from staff_relation EMPLOYEE, staff_Relation SUPERVISOR
where EMPLOYEE.staff_no = SUPERVISOR.supervisor
一样,您将获得相同的结果。
这是你的两个查询,只有表别名改变了:
select EMPLOYEE.staff_name, SUPERVISOR.staff_name 'supervisor name'
from staff_relation EMPLOYEE, staff_Relation SUPERVISOR
where EMPLOYEE.supervisor = SUPERVISOR.staff_no
和
{{1}}
了解为什么#2会给你正确的结果,但#1现在没有?