码迷,mamicode.com
首页 > 数据库 > 详细

mysql--浅谈子查询1

时间:2019-05-23 13:11:40      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:code   where   结果   sel   sts   style   概念   依赖   desc   

这是对自己学习燕十八老师mysql教程的总结,非常感谢燕十八老师。

依赖软件:mysql5.6

系统环境:win

子查询概念

子查询就是在原有的查询语句中嵌入新的查询

子查询分类

1、where型子查询

2、from型子查询

3、exists型子查询

三种子查询的详细说明

1、where型子查询

where型子查询:把内层的sql语句的查询结果作为外层的sql查询的条件

 

# 语法
select 查询项 from 表名
where 列名=select 查询项 from 表名)--内层sql语句查询结果唯一
where 列名 inselect 查询项 from 表名)--内层sql语句查询有一个以上的结果

# 示例
# 查询每个栏目下价格最贵的商品
select goods_id,cat_id,shop_price,goods_name
from goods
where shop_price 
in (select max(shop_price) from goods group by cat_id);

 

 

2、from型子查询

 

from型子查询:把内层的sql语句的查询结果作为临时表供外层sql语句再次查询

 

# 语法
select 查询项 
from (select 查询项 from 表名 选择表达式)
选择表达式


# 示例
# 查询每个栏目下goods_id最大的商品
select * from(
select goods_id,cat_id,shop_price,goods_name 
from goods
order by goods_id desc,cat_id asc)as tmp
group by cat_id;

 

3、exists型子查询

exitst型子查询:把外层sql查询到的行带入内层sql查询,要使内层查询成立

# 语法
select 查询项 from 表名
where existsselect 查询项 from 表名 where 选择表达式)

#示例
#把有商品的栏目查询出来
select cat_id,cat_name 
from category 
where exists(select * from goods where goods.cat_id=category.cat_id);

由于mysql版本的变化,语法可能存在一定的变化,欢迎指出错误和评论区讨论

 

mysql--浅谈子查询1

标签:code   where   结果   sel   sts   style   概念   依赖   desc   

原文地址:https://www.cnblogs.com/Pang-Jie/p/10911229.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!