高手帮忙,求SQL

s_delhpi 2005-12-16 07:32:44
比如表结构是这样的table1(id,user,keyword,datetime)
id是自动增长,user是提交的用户,keyword可以重复,datetime是提交的时间

根据根据时间排序显示,显示的时候keyword只能显示唯一的(就像group by),
有重复的keyword显示最新的

我的问题就是单单用group by 好像不能取到最新,能不能用一句sql搞定呢?

...max(datetime) ... group by keyword 这样只能取得最新的datetime,
我想取到最新的那条记录id,user,keyword,datetime,应该怎么写这个SQL?

id user keyword datetime
01 s1 k1 05-12-12
02 s2 k2 05-12-11
03 s3 k2 05-12-13
04 s4 k3 05-12-10

我希望group以后得到的结果是
id user keyword datetime
03 s3 k2 05-12-13
01 s1 k1 05-12-12
04 s4 k3 05-12-10
...全文
99 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvlfforever 2005-12-17
  • 打赏
  • 举报
回复
4.1.0之前不支持子查询。
select id, keyword,max(datetime) from table1 group by keyword;
s_delhpi 2005-12-16
  • 打赏
  • 举报
回复
mysql3.23可以执行嵌套select ...(select ...) 吗?
s_delhpi 2005-12-16
  • 打赏
  • 举报
回复
where 后面的a位置错吧
s_delhpi 2005-12-16
  • 打赏
  • 举报
回复
select * from table1 where a not exists(select * from table1 where keyword=a.keyword and datetime>b.datetime)
请问效率会不会很差?
lxzm1001 2005-12-16
  • 打赏
  • 举报
回复
select * from table1 where a not exists(select * from table1 where keyword=a.keyword and datetime>b.datetime)
lxzm1001 2005-12-16
  • 打赏
  • 举报
回复
select a.* from table1 a,(select keyword,max(datetime) from table1 group by keyword)b where a.keyword=b.keyword and a.datetime=b.datetime
s_delhpi 2005-12-16
  • 打赏
  • 举报
回复
mysql3.23

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧