文档章节

MYSQL中一些疑问

H
 Haver
发布于 2016/12/08 11:00
字数 446
阅读 0
收藏 0

having&where区别:

     having与where类似,可以筛选数据,where后的表达式怎么写,having后就怎么写

                    where针对表中的列发挥作用,查询数据

                    having对查询结果中的列发挥作用,筛选数据

                    #查询本店商品价格比市场价低多少钱,输出低200元以上的商品

                    select goods_id,good_name,market_price - shop_price as s from goods having s>200 ;

                    //这里不能用where因为s是查询结果,而where只能对表中的字段名筛选

                    如果用where的话则是:

                    select goods_id,goods_name from goods where market_price - shop_price > 200;

mysql子查询:

        1、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);

 

        2、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;

 

        3、exists型子查询

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

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

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

 

 

 

© 著作权归作者所有

共有 人打赏支持
H
粉丝 1
博文 35
码字总数 7758
作品 0
深圳
后端工程师
私信 提问
数据库连接池的一点小疑问

在项目开发中遇到这样的问题 这是一个程序批量向数据库插入 一些用户 数据库是mysql 底层用的是数据库连接池 其中 datasource如下图所示 结果是 出现如下异常 结果是数据库中已经插入了1些数...

kong_resty
2013/03/21
890
4
Spring Transaction + MyBatis SqlSession事务管理机制研究学习

原文地址:Spring Transaction + MyBatis SqlSession事务管理机制研究学习 线上的系统中,使用的是Spring+Mybatis+Mysql搭建的框架,由于客户需要,最近一直在对性能提升部分进行考虑,主要是...

Realfighter
2015/01/10
0
1
Mysql 主从复制及读写分离的疑问

本人这两天在研究mysql读写分离,于是到处度娘。得出的结论是,读写分离要进行主从复制。所以先对mysql进行了主从配置,很简单。一切ok了。 但是随之有个很菜鸟的疑问,按照之前的想法,mas...

wonailmy
2017/07/06
136
2
MYSQL老密码与php版本扩展关系

mysql的用户密码保存在数据库中是加密的。不可逆的。当需要创建一个新的帐号,如果是使用insert插入一条记录, mysql提供了一个函数PASSWORD(),对明文进行加密。所以有如下sql: insert int...

wangtaotao
2012/04/04
0
0
mysql 5.6中关于innodb_stats_on_metadata

在mysql 5.6中,innodbstatsonmetadata默认是关闭了这个会对INFORMATIONSCHEMA中的一些表进行查询操作,以方便索引统计信息,如果读要求高的建议关闭,见淘宝丁奇的http://t.cn/zWG9ikt一文;...

jackyrong
2013/03/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
12分钟前
0
0
java框架学习日志-6(bean作用域和自动装配)

本章补充bean的作用域和自动装配 bean作用域 之前提到可以用scope来设置单例模式 <bean id="type" class="cn.dota2.tpye.Type" scope="singleton"></bean> 除此之外还有几种用法 singleton:......

白话
34分钟前
2
0
在PC上测试移动端网站和模拟手机浏览器的5大方法

总结很全面,保存下来以备不时之需。原文地址:https://www.cnblogs.com/coolfeng/p/4708942.html

kitty1116
今天
5
0
分布式Session共享解决方案

分布式Session一致性? 说白了就是服务器集群Session共享的问题 Session的作用? Session 是客户端与服务器通讯会话跟踪技术,服务器与客户端保持整个通讯的会话基本信息。 客户端在第一次访...

Java干货分享
今天
9
0
开源软件和开源模式面临的生存危机

导读 开源模式可能正面临一场危机。越来越多的开源软件和平台被大型云计算服务商融入自家的云服务体系,并以此获利颇丰,但并不支付费用,也没有对开源社区做出相应的回馈。而实际上,大部分...

问题终结者
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部