• 常用的sql


    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.

     

  • 相关阅读:
    第六周作业
    2019第四周作业(基础作业+挑战作业)
    第三周作业
    2019第二周基础作业
    求最大值及下标值
    查找整数
    学期总结
    打印沙漏
    币值转换
    远程连接centos7的mysql5.7+ 更改iptables方法
  • 原文地址:https://www.cnblogs.com/datang6777/p/6930798.html
Copyright © 2020-2023  润新知