| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1066 人关注过本帖
标题:join连接的顺序问题
只看楼主 加入收藏
josephzzq
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-3-18
收藏
 问题点数:0 回复次数:6 
join连接的顺序问题

请问一下
select xs.学号,姓名,kc.课程号,成绩 from xs join xs_kc join kc on xs.学号=xs_kc.学号
on kc.课程号=xs_kc.课程号
where kc.课程名='计算机基础'and 成绩>79


select xs.学号,姓名,kc.课程号,成绩 from xs join xs_kc join kc on xs_kc.课程号=kc.课程号
on xs.学号=xs_kc.学号
where kc.课程名='计算机基础'and 成绩>79

为什么第一句运行出现错误,而第二句就可以呢

搜索更多相关主题的帖子: join 顺序 
2007-03-25 23:33
xiyou419
Rank: 1
等 级:新手上路
威 望:2
帖 子:104
专家分:0
注 册:2007-3-18
收藏
得分:0 
on和join匹配是按照括号的匹配原则的,即由内到外
你第一个例子中的第一个on和第二个join匹配,相当于"xs_kc join kc on xs.学号=xs_kc.学号"
当然会出错了~~~~~~~~~~~~~~~

道德往往可以弥补智慧的缺陷;但智慧永远不能填补道德的空白.
2007-03-26 04:27
cyyu_ryh
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1899
专家分:176
注 册:2006-10-21
收藏
得分:0 
楼上的说得对,多表连接需要注意匹配关系,下面有个多表连接的参考:
SELECT Max(dbo.RoleModule.RightCode)
FROM dbo.UserInfo INNER JOIN
dbo.RoleUser ON dbo.UserInfo.UserID = dbo.RoleUser.UserID INNER JOIN
dbo.RoleInfo ON dbo.RoleUser.RoleID = dbo.RoleInfo.RoleID INNER JOIN
dbo.RoleModule ON dbo.RoleInfo.RoleID = dbo.RoleModule.RoleID INNER JOIN
dbo.ModuleInfo ON
dbo.RoleModule.ModuleID = dbo.ModuleInfo.ModuleID
WHERE dbo.UserInfo.UserID = @UserID AND dbo.ModuleInfo.ModuleID = @ModuleID

有事无事都密我. MSN: cyyu_ryh@hotmail.co.jp E-mail: cyyu_ryh@
2007-03-26 09:30
冰封情愁
Rank: 1
等 级:新手上路
威 望:1
帖 子:32
专家分:0
注 册:2006-12-7
收藏
得分:0 

请问2楼
第二个join连接的两个表是xs_kc 和kc.
那么第一个join连接的两个表是哪两个?是xs和xs_kc吗?


2007-03-26 10:42
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 
join join on on 是非常不好的写法
参看3楼的模式 每个join 后面接on

2007-03-26 11:17
初学Delphi
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:330
专家分:0
注 册:2006-4-4
收藏
得分:0 

以前不习惯这种写法
学习了~。。

2007-03-26 13:22
josephzzq
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-3-18
收藏
得分:0 

呵呵,原来是这样~~~学习了
谢谢高手们

2007-03-26 14:31
快速回复:join连接的顺序问题
数据加载中...
 
   



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

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