A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑丹丹1990 中级黑马   /  2013-4-10 22:01  /  2282 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郑丹丹1990 于 2013-4-24 08:58 编辑

查询每门课的间接先修课(先修课的先修课)
T_Course
Cno   Cname     Cpno   Ccredit
1      数据库       5            4
2      数学                        2
3     信息系统    1           4
4     操作系统    6            3
5    数据结构     7            4
6    数据处理                   2
7     c#              6             4


select First.T_Course.Cno,Second.Cno
from T_ Course First,Second.T_Course
where  First.Cpno=Second.Cno

表的自身连接掌握的不是太好,
这个?????
还有这个表的连接到底以后用的多吗??

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

3 个回复

倒序浏览
自连接并不是独立于交叉连接,内连接,外连接等这些连接方式之外的另外一种连接方式,而只是这些连接方式的一种特例,也就是交叉连接,内连接,外连接等连接方式中只要参与连接的表是同一张表,那么它们就可以被称为自连接。
回复 使用道具 举报
你不会也在学数据库原理这本书吧?这个例子我觉得不好,当初就把我脑袋搅了一团。
sql语句应该是:
select c1.cno, c2.cpno
from T_Course as c1, T_Course as c2
where c1.cpno=c2.cno
and c2.cpno is not null
看作是两个相同的表,以c1.cpno=c2.cno作为连接条件,然后连接的结果 ,就能看出来了。
建议你在纸上写出来步骤,就能明白了。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
其实就是自己连接自己,就是给同一个表起两个名字,通过字段连接起来,查询就可以了,不要想那么复杂~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马