常用的sql

2018-06-17 23:47:52来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

mysql,A用户表,B留言表,查询留言数大于10条记录的用户名,留言数量

select u.name,count(*) as total from user as u inner join message as m on u.user_id=m.user_id group by u.name having total>10 order by total desc 

1.查询每个用户最新的发言记录:

select max(time) from 2017sxgf group by id order by time desc limit 10;

 

2.找到发言数最多的用户ID和次数

select userid,count(userid) from orders  where userid != '' group by userid order by count(userid) desc  limit 1;

3.关于MySQL中每个用户取1条记录的三种写法

第一种是先排序,然后group,这样的话自然可以取到最适合的一条数据。
缺点很明显:Using temporary; Using filesort

select * from (select * from 2017sxgf order by time desc)t group by mobile limit 10;

 

第二种是联合查询 

select * from (select max(time) as btime  from 2017sxgf group by mobile limit 10)t left join  2017sxgf as s on t.btime = s.time;

 

第三种是子查询

select * from 2017sxgf where exists(select mobile from (select max(time) as btime from 2017sxgf  group by mobile limit 10)t where t.btime = 2017sxgf.time);

 

5.

 

 

 

 

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:十分钟了结MySQL information_schema

下一篇:MySQL : 事务处理