表的自身连接原理详解
来源:互联网 发布:java三年面试题 编辑:程序博客网 时间:2024/05/21 19:29
以问题驱动的方式来讲解
create table stu(sno char(10) not null,sname char(20) not null,cname char(20) not null,score decimal(3,1) not null);insert into stu values('001','王军','计网',70.0);insert into stu values('001','王军','算法',70.0);insert into stu values('002','李伟','计网',80.9);insert into stu values('002','李伟','算法',59.0);insert into stu values('003','刘辉','计网',56.0);insert into stu values('003','刘辉','算法',56.0);
查询成绩表中存在不及格课程的学生姓名,所有课程名和成绩信息
刚开始上来就敲了这个
select sname,cname,scorefrom stuwhere score<60;
只显示成绩小于60的课程,不是所有课程,这时就用到表的自身连接了
select *from stu as s1,stu as s2where s1.sno=s2.sno;
表的自身连接就是产生2个表的笛卡尔积
select s1.sname,s1.cname,s1.scorefrom stu as s1,stu as s2where s1.sno=s2.snoand s2.score<60order by s1.sname;
就是上图最后6行的数据
有重复的语句所以要去重
select distinct s1.sname,s1.cname,s1.scorefrom stu as s1,stu as s2where s1.sno=s2.snoand s2.score<60order by s1.sname;
完成
再来个例子,具体的原理就不讲了
查询每一门课的先修课的先修课
course表有2列con(课程号),cpno(先修课程号)
select first.cno,second.cpnofrom course first,course secondwhere first.cpno=second.cno
0 0
- 表的自身连接原理详解
- 数据表的自身连接
- 自身连接
- Sql 中 表自身连接总结
- 表的自身查询问题
- MySql自身连接查询
- 表连接的详解
- Mysql连接查询(自然连接、自身连接、外连接、多表连接)总结
- SQL中关于自身连接的一些体会
- [tornado]使用自身的mysql封装,连接数据库
- JDBC连接数据库的原理及预编译详解
- Linux动态连接原理 GOT PLT表详解
- Linux动态连接原理 GOT PLT表详解
- Linux动态连接原理 GOT PLT表详解
- Linux动态连接原理 GOT PLT表详解
- Linux动态连接原理 GOT PLT表详解
- Linux动态连接原理 GOT PLT表详解
- Linux动态连接原理 GOT PLT表详解
- java并发教程(转载)
- UVA 10820 Send a Table
- Android设置自定义字体
- java项目生成日志
- android5.1中自动更新时间机制
- 表的自身连接原理详解
- 扑克游戏
- 安卓四大控件之BroadcastReceiver详解
- SVN-cornerstone
- 第一篇 小曹学spring--IOC容器概述
- tomcat配置https方法
- 一种新的攻击方法——Java Web表达式注入
- Android实现屏幕旋转方法总结
- 如何让listview点击item的时候不变颜色