Select语句自连接查询
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5 自连接查询操作
【实例1】查询所有同时选修课程编号为c1和c2的学生的学号。 Select sc1.sno from sc as sc1,sc as sc2 where sc1.sno=sc2.sno and sc1.cno='c1' and sc2.cno='c2'
或:Select sc1.sno from sc as sc1 inner join sc as sc2 on sc1.sno=sc2.sno and sc1.cno='c1' and sc2.cno='c2'
或:Select s.sno,sname from s inner join sc as sc1 on s.sno=sc1.sno inner join sc as sc2 on sc1.sno=sc2.sno and sc1.cno='c1' and sc2.cno='c2'
9 自连接查询操作
9 拓展练习
6 自连接查询操作
6 自连接查询操作
【实例2】查询至少选修两门课的学生的学号。 Select distinct sc1.sno from sc as sc1,sc as sc2 where sc1.sno=sc2.sno and sc1.cno<>sc2.cno
或:Select distinct sc1.sno from sc as sc1 inner join sc as sc2 on sc1.sno=sc2.sno and sc1.cno<>sc2.cno
7 自连接查询操作
8 自连接查询操作
【实例3】查询所有同时选修课程编号为c1和c2的学生的学号、姓名。 Select s.sno,sname from s,sc as sc1,sc as sc2 where s.sno=sc1.sno and sc1.sno=sc2.sno and sc1.cno='c1' and sc2.cno='c2'
成为两个独立的表。 自连接是一种特殊的内连接,它是指相互连接的表在物理上为同一张表,但可以在
逻辑上分为两张表。 自连接通常用于查询表中具有相同列值的行数据。
4 自连接查询简介
格式1:Select <列表字段> from <表名1> as <别名1>,<表名2> as <别名2> where <别名1.列名=别名2.列名>
Select语wk.baidu.com自连接查询
Self join query of select
2
知识点内容概要
自连接查询简介 自连接查询操作
3 自连接查询简介
如果在一个连接查询中,涉及的两个表都是同一张表,这种查询称为自连接查询。 自连接是指将一个表与它自身连接,将表如同分身一样分成两个,使用不同的别名,
格式2:Select <列表字段> from <表名1> as <别名1> Inner Join <表名2> as <别名2> on <别名1.列名=别名2.列名>
说明:①因为同一张表在From子句中多次出现,为了区别该表的每一次出现,需要 使用as关键字为表定义一个别名。as关键字可以省略,而用空格隔开原名与别名。 ②若为表指定了别名,则只能用“别名.列名”来表示同名列,不能用“表名.列 名”表示。
请思考:什么情况下需要使用自连接?