作者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://www.ptt.cc/bbs/Database/M.1404821195.A.47B.html
※ 編輯: terrybob (211.75.186.7), 07/08/2014 20:07:09
→ bohei:id應該不會重複,且你撈出來的資料要看到id,每筆資料的id都不 07/08 20:15
→ bohei:一樣,何來"一大堆資料"的說法? 07/08 20:15
→ bohei:你要用的應該是MAX()函式,找出最大的時間 07/08 20:21
→ bohei:MAX()跟GROUP BY的用法可以大略參考以下google到的教學 07/08 20:21
→ terrybob:謝謝幫助 07/09 10:34