问一个两表联结配对顺序的问题
问一个SQL SERVER 2000两个表进行联结之后输出表的行顺序问题
如图,上半部分是student表,下半部分是score表,当执行语句
select student.sname,,score.degree from student,score where
student.sno=score.sno
输出的结果为
SNAME CNO DEGREE
陆君 3-245 86
匡明 3-245 75
王芳 3-245 68
陆君 3-105 92
匡明 3-105 88
王芳 3-105 76
李军 3-105 64
王丽 3-105 91
............
............
从输出结果看,电脑执行这个语句时,是用score表的每一行的sno列去配对student表的每一行的score列,然后输出结果,所以最后输出表的行顺序与score表示一样的
但是就算把等号左右互换,执行下面这条语句
select student.sname,,score.degree from score,student where
score.sno=student.sno
输出的结果与上面还是一样
我想问的是,电脑是怎么理解并执行这条语句的?为什么SQL SERVER总是用第二张表来配对第一张表?为什么输出的结果不会是
SNAME CNO DEGREE
匡明 3-245 86
匡明 3-105 88
王丽 3-105 91
李军 3-105 64
王芳 3-245 68
王芳 3-105 76
陆君 3-245 86
陆君 3-105 92
.......................
.......................
即 用student表的每一行的sno列来分别比对score表的sno列,这样输出的行顺序不就不一样了吗?
哪位兄弟能帮我解释一下,SQL SERVER是怎么理解这句话,按照什么规则去执行的?以后看到类似的语句我就能知道最后输出表的行顺序了。
说得可能不是太明白,如果愿意指点一下的可以加QQ 414194747
之前问过别人,有人说是左右匹配的问题,有人说是运算顺序是默认由右向左,但是如果问题真的在于此,那为什么这两条语句输出的结果一样?
select student.sname,,score.degree from student,score where
student.sno=score.sno 和
select student.sname,,score.degree from score,student where
score.sno=student.sno
这两条语句等号左右互换了,如果是左右匹配问题,第二句话应该变成student匹配score,输出一个行顺序不同的表
但是输出结果还是score去匹配student
求解释啊!!