想到用group by 但它只能显示第一条,而不能显示最新一条,
想加个order by time desc,可是orber by只能加在group by后面。
有什么办法可以查询出group by的分组中,每组内的排序中最大或最小的一行数据?
想到用group by 但它只能显示第一条,而不能显示最新一条,
想加个order by time desc,可是orber by只能加在group by后面。
有什么办法可以查询出group by的分组中,每组内的排序中最大或最小的一行数据?
select a.* from(select max(id) as id from info group by userid) b left join info a on a.id=b.id
select * from (
select (@mycnt := @mycnt + 1) as ROWNUM,name,age
from tb where AGe < 20 order by name,age
) as A where ROWNUM = 1
只懂SqlServer,这个是仿照SqlServer写法的,可以试试
SELECT a.id, a.user_id, a.info, a.create_time
FROM (SELECT id, user_id, info, create_time FROM tbl_user
ORDER BY user_id, create_time DESC, id DESC) a
GROUP BY a.user_id
6 回答3.3k 阅读✓ 已解决
2 回答3.1k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
4 回答2k 阅读
2 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
方案一: 通过同表子查询或联查找到最大的数据ID
方案二:分两步查询,php中先查询最大ID,再通过ID数组查询列表数据