| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 830 人关注过本帖
标题:问一个两表联结配对顺序的问题
取消只看楼主 加入收藏
neverwinboy
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-2-19
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
问一个两表联结配对顺序的问题
图片附件: 游客没有浏览图片的权限,请 登录注册



问一个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

求解释啊!!
搜索更多相关主题的帖子: 王丽 where 配对 
2012-02-19 03:19
neverwinboy
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-2-19
收藏
得分:0 
没人能帮个忙吗。。。。。呜呜
2012-02-19 16:21
快速回复:问一个两表联结配对顺序的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042143 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved