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.