多表查询2
来源:互联网 发布:淘宝零点抢购怎么抢 编辑:程序博客网 时间:2024/06/05 05:06
多表查询—–笛卡尔积
当两个数据表进行关联查询时,用第一张数据表的每一条记录去匹配第二张数据表的每一条记录。
第一张表10条记录
第二张表20条记录
使用笛卡尔积 结果 10*20=200条记录
笛卡尔积没意义的。在实际开发中获得笛卡尔积中有意义的记录
——连接查询
内连接
外连接
内连接查询:将两张表相同意义字段连接起来
select *from A,B where A.A_ID=B.A_ID;
A表中的A_ID与B表中的A_ID相等匹配
这才能有意义。
返回的结果一定是两个表中都存在的信息,最有意义的信息。
如果第一张表中的记录在第二张表找不到匹配的信息,不显示。
第二张表的记录在第一张表无匹配的信息,也是不显示的。
第一张表10条数据
第二张表20条数据
内连接 结果<=10条
语法: select * from a inner join b on a.a_id=b.a_id;
简化 : select * from a,b where a.a_id=b.a_id;
外连接:左外连接,右外连接,全外连接
左外连接:用第一张表的每条记录去匹配第二张表的记录对应的记录。
结果是无论是否找到匹配的信息,都显示第一张表匹配的结果。
例如: 每个水果的价格?没有价格的水果也要显示。
select * from a left outer join b on a.a_id=b.a_id;
第一张表记录10条数据
第二张表记录20条数据
左外连接 —-10条
右外连接:从二张表的去找第一张表匹配记录,无论是否找到,第二张表的记录都显示。
select * from a right outer join b on a.a_id=b.a_id;
关联子查询 重点
将一个查询作为另一个查询的一部分
查询student表中年龄最大学员的信息
select * from student where age =(select max(age) from student);
将第一个查询的结果作为第二个查询的条件。
in/exists 当前查询记录在子查询结果中存在
查询所有成绩小于60分
查询studentcource表成绩小于60所有记录
select student_id from studentcource where score<60; —小于60分学生的学号2,8
再根据id去查询学生表,得知学生姓名
select * from student where id in(2,8);
select * from student where id in(select student_id from studentcource where score<60);
exists 实现上面 in语句效果
select name from student where exists (select student_id from studentcource where score<60 and student.id=studentcource.student_id);
any some all
some 和any 作用是相同的
any 部分数据 >any(1,2,3) >min
all 所有数据>all(1,2,3) 必须同时大于三个值。 等价于>max
自我比较
select student_id from studentcource where >=all(select score from studentcource);
- 多表查询2
- 关联查询(多表查询)
- 多表查询,嵌套查询
- 多表查询----连接查询
- 多表查询----合并查询
- 00104 SQL查询进阶2:多表联合查询JOIN
- 数据库操作,内外联查询,分组查询,嵌套查询,交叉查询,多表查询,语句小结。
- 数据库操作,内外联查询,分组查询,嵌套查询,交叉查询,多表查询,语句小结
- 数据库操作,内外联查询,分组查询,嵌套查询,交叉查询,多表查询,语句小结。
- 数据库操作,内外联查询,分组查询,嵌套查询,交叉查询,多表查询,语句小结。
- 内外联查询,分组查询,嵌套查询,交叉查询,多表查询,语句小结转
- 复杂Oracle查询 限定查询+多表查询+统计查询+子查询
- SQL单表查询、多表查询、嵌套查询
- sql 复杂查询 多表查询 分页查询
- Hibernate数据库查询中DetachedCriteria数据库查询多表查询
- oracle 多表查询,子查询,集合运算,分页查询
- sql 多表查询,3表查询
- MySQL单表查询多表查询
- 判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。
- Android 开发中不得不知道的 Tips 集合
- beetl中sql的in语句
- Object Detection with Discriminatively Trained Part Based Models(使用判别训练的部件模型进行目标检测 )
- 题目1062:分段函数
- 多表查询2
- log4j2.xml的完整
- Map遍历方式汇总
- EF中System.Data.Entity.Internal.AppConfig的类型初始值设定项引发异常
- docker 配置可以运行spark的容器并运行
- select2下拉菜单重置
- MySQL出现乱码的原因
- 『ORACLE』 SQL语句简单使用(一)(11g)
- 66. Plus One