博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql子查询
阅读量:5152 次
发布时间:2019-06-13

本文共 963 字,大约阅读时间需要 3 分钟。

1.知识结构图

1.1 完整的子查询形式

 

 

1.2 子查询应用位置

1.3 子查询结果类型

2.where型子查询

(把内层查询结果当作外层查询的比较条件

#不用order by 来查询最新的商品

select goods_id,goods_name from goods where goods_id = (select max(goods_id) from goods);

#取出每个栏目下最新的产品(goods_id唯一)

select cat_id,goods_id,goods_name from goods where goods_id in(select max(goods_id) from goods group by cat_id);

3.from型子查询

(把内层的查询结果外层再次查询)

#用子查询查出挂科两门及以上的同学的平均成绩
思路:
#先查出哪些同学挂科两门以上

select name,count(*) as gk from stu where score < 60 having gk >=2;

#以上查询结果,我们只要名字就可以了,所以再取一次名字

select name from (select name,count(*) as gk from stu having gk >=2) as t;

#找出这些同学了,那么再计算他们的平均分

select name,avg(score) from stu where name in (select name from (select name,count(*) as gk from stu having gk >=2) as t) group by name;

4.exists型子查询

(把外层查询结果拿到内层,看内层的查询是否成立)

#查询哪些栏目下有商品,栏目表category,商品表goods

select cat_id,cat_name from category where exists(select * from goods where goods.cat_id = category.cat_id);

转载于:https://www.cnblogs.com/blueoverflow/p/4713747.html

你可能感兴趣的文章
Tomcat会话保持配置方案
查看>>
spoj104 highways 生成树计数(矩阵树定理)
查看>>
sencha touch之模型(model)
查看>>
Linux进程间通信之管道(pipe)、命名管道(FIFO)与信号(Signal)
查看>>
对ThinkPHP 框架看法和建议
查看>>
C# 客户端调用web服务 wsdl转成dll调用
查看>>
C# 事务之SqlTransaction
查看>>
简单工厂模式
查看>>
linux简单设置samba,提供windows共享
查看>>
POJ 1609 Tiling Up Blocks
查看>>
xshell6,xftp下载
查看>>
传统API
查看>>
JDBC (转)
查看>>
Entity Framework Code First -- 延迟加载和预先加载
查看>>
linux单个进程的句柄数量
查看>>
jQuery 学习笔记 事件系列
查看>>
Number of Boomerangs
查看>>
深入理解计算机系统—异常
查看>>
1. Two Sum
查看>>
boost的字符串处理函数——format
查看>>