| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 294 人关注过本帖
标题:join连接的顺序问题
收藏  订阅  推荐  打印 
josephzzq
Rank: 2
等级:注册会员
帖子:89
积分:1000
注册:2007-3-18
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-3-25 23:33
xiyou419
Rank: 2
等级:注册会员
威望:2
帖子:104
积分:1138
注册:2007-3-18

on和join匹配是按照括号的匹配原则的,即由内到外
你第一个例子中的第一个on和第二个join匹配,相当于"xs_kc join kc on xs.学号=xs_kc.学号"
当然会出错了~~~~~~~~~~~~~~~

道德往往可以弥补智慧的缺陷;但智慧永远不能填补道德的空白.
2007-3-26 04:27
cyyu_ryh
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:42
帖子:1725
积分:17780
注册:2006-10-21

楼上的说得对,多表连接需要注意匹配关系,下面有个多表连接的参考:
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@yahoo.com
2007-3-26 09:30
冰封情愁
Rank: 1
等级:新手上路
威望:1
帖子:32
积分:420
注册:2006-12-7

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


2007-3-26 10:42
Kendy123456
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:62
帖子:2694
积分:27044
注册:2007-1-3

join join on on 是非常不好的写法
参看3楼的模式 每个join 后面接on

2007-3-26 11:17
初学Delphi
Rank: 3Rank: 3
等级:中级会员
威望:9
帖子:330
积分:3404
注册:2006-4-4

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

2007-3-26 13:22
josephzzq
Rank: 2
等级:注册会员
帖子:89
积分:1000
注册:2007-3-18

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

2007-3-26 14:31
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.047502 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved