作者agogoman (阿哥哥~)
看板Database
标题Re: [SQL ] GROUP BY
时间Sat Aug 12 05:43:13 2006
※ 引述《andreli (大学生)》之铭言:
: 标题想了很久不知道要怎麽样下,原谅我吧。
: 最近在写程式,使用PHP+MySQL,有资料如下:
: name group_num date
: A 1 20050410
: B 2 20060606
: C 2 20050312
: D 3 20030424
: E 3 20061211
: F 3 20051123
: group_num就是分组的组别,
: 但是我每个组别只想要取出时间离现在最近的那笔资料,
: 取出的资料希望是:
: name group_num date
: A 1 20050410
: B 2 20060606
: E 3 20061211
: 我是这麽写的:
: SELECT DISTINCT(group_num),name FROM tbl GROUP BY group_num
: ORDER BY group_num ASC,date DESC
: 但是有时候取出来的样子并不是我想要的,
: 就是取出的那笔资料不会是时间离现在最近的,不知道该怎麽写呢?
: 谢谢各位前辈指导。
: PS.
: 爬了前面的文章还有PHP版里的文章,
: 我在SELECT中多增加了MAX(UNIX_TIMESTAMP(time))
: 结果还是不行,资料库里的语法优先顺序是什麽呢?
抱歉 , 我讲的可能是错的 , 但还是说一下我的想法
DISTINCT 指的是把相同的name 去掉 , 这样资料库取得
data是为第一笔,且你没限定其它条件,所以你有时候日期并不会是最近的
再者,你将group_num作 GROUP, 何不再多设一个条件进去GROUP,date必须为最大值
,不晓得对不对...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.104.164.213
※ 编辑: agogoman 来自: 59.104.164.213 (08/12 05:44)
1F:→ agogoman:多取一个MAX的日期,并加上HAVING的条件即可 08/13 03:13