作者terrybob (罪云樵)
看板Database
标题[SQL ] 找出不同类别的最新成员
时间Tue Jul 8 20:06:29 2014
(针对
SQL 语言的问题,用这个标题。请用 Ctrl+Y 砍掉这行)
资料库名称:
mysql
资料库版本:
内容/问题描述:
资料表-member
------------------------------------
id aid type user time
====================================
1000 100 a abcd 9999 <==
999 100 b efgh 8888
998 99 a aaaa 7777
997 99 b abcd 6666 <==
996 98 a cccc 5555
995 100 a abcd 4444
994 100 a abcd 3333
993 100 b abcd 2222
....................................
1 1 a aaaa 1
------------------------------------
id是自动编号,aid是频道代号,type是种类(只有a、b)、
user是使用者帐号,time是每次登入时间。
我现在要抓出,在同一个aid+user之下,离现在最近的登入时间
假设条件:aid=100、type=a、b、user=abcd、以time新到旧,
希望查出如下表
------------------------------------
id aid type user time
====================================
1000 100 a abcd 9999
997 99 b abcd 6666
------------------------------------
现在sql是:
select * from `member`
where `aid`=100 and user="abcd" and `type` in ("a", "b")
group by `type` order by `time` desc
结果在group by `type`後,时间不会从最新到最旧…
不group by的话,就会列出一堆资料…卡关了!
请高手们相救,感谢。
--
习惯一个人在房间里,安静地享受书的内容…
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 211.75.186.7
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Database/M.1404821195.A.47B.html
※ 编辑: terrybob (211.75.186.7), 07/08/2014 20:07:09
1F:→ bohei:id应该不会重复,且你捞出来的资料要看到id,每笔资料的id都不 07/08 20:15
2F:→ bohei:一样,何来"一大堆资料"的说法? 07/08 20:15
3F:→ bohei:你要用的应该是MAX()函式,找出最大的时间 07/08 20:21
4F:→ bohei:MAX()跟GROUP BY的用法可以大略参考以下google到的教学 07/08 20:21
6F:→ terrybob:谢谢帮助 07/09 10:34