求一MYSQL的SQL语句:每个类别取最新一条信息。

HFeiLin 2007-05-10 10:04:08
MYSQL数据库,求一SQL语句,每个类别取最新一条信息。

表一: data_class(分类表,有两个字段)

字段: ID ClassName
内容: 1 类别名一
2 类别名二
3 类别名三
4 类别名四

表二: data_news(内容表,有四个字段,字段BigClass对应data_class表的ID字段)

字段: ID Title BigClass PostTime
内容: 1 AAAAA 2 2007-02-01
2 BBBBB 1 2007-03-04
3 CCCCC 1 2007-04-05
4 DDDDD 3 2007-04-05
5 EEEEE 4 2007-04-05
6 FFFFF 3 2007-04-06
7 IIIII 2 2007-04-07

我想按录入时间PostTime倒序,查类别BigClass为(1,2,3)这3个类的信息,每个类的信息只查最新一条。
...全文
546 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
henan_ljx 2007-05-10
  • 打赏
  • 举报
回复
不好意思,刚才那个有问题,请用下面的代码!
select data_news.* from data_news,
(select BigClass, Max(PostTime) as PostTime1 from data_news
where BigClass in ('1', '2', '3')
group by BigClass
) a
where data_news.BigClass=a.BigClass and data_news.PostTime=a.PostTime1
order by data_news.PostTime desc

sunshareforever 2007-05-10
  • 打赏
  • 举报
回复
same question


HTTP://www.ebigear.com/Fund/PlayNews.php?NewsID=29453&ID=285885
HFeiLin 2007-05-10
  • 打赏
  • 举报
回复
有2个子查询呀,我试试看效率怎样
henan_ljx 2007-05-10
  • 打赏
  • 举报
回复
你试一下这个SQL语句吧,肯定可以,不过还不够简练!
select * from data_news
where BigClass in ('1', '2', '3') and
ID in (select max(ID) from data_news group by BigClass ) and
PostTime in (select max(PostTime) from data_news group by BigClass )
order by PostTime desc
CathySun118 2007-05-10
  • 打赏
  • 举报
回复
MySql不会,帮顶
HFeiLin 2007-05-10
  • 打赏
  • 举报
回复
henan_ljx: 你最后那个不行,我查询后都是一个类别了列了许多出来
HFeiLin 2007-05-10
  • 打赏
  • 举报
回复
Max(PostTime) 可以吗?

57,062

社区成员

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

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