在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
我先把功能场景简要阐述下: 数据行字段如下:
在这张表里,name有重复值 现在需要在type确定的情况下,筛选出一个列表,满足,name不重复,找出的记录为同name下started_at为最小的记录 举个例子:
那筛的列表应为:
还需要满足started_at 大于 当前时间 请问这样的sql应该如何写? 解决思路为: 就是利用left join 自己 比如 最后 SELECT s1.NAME, s1.started_at, FROM tbl s1 LEFT JOIN tbl s2 ON s1.`name` = s2.`name` AND s1.started_at > s2.started_at AND s2.started_at > now( ) WHERE s2.id IS NULL AND s1.started_at > now( ) AND s1.type = 'online_lecture' ORDER BY s1.NAME, s1.started_at; 大家有什么更好的解决思路吗? 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对极客世界的支持。 |
请发表评论