[SQL ] 問 group by 和 order by 複合使用時的問題
假設我現在要從資料庫裡面select某家店最後賣出去的10本書(依時間排列)
(使用mysql)
SELECT book_id,sell_time
FROM sell_data
WHERE store_id = '1'
ORDER BY sell_time desc
LIMIT 0,10
但是此時因為可能同一本會連續賣出兩本以上,所以我用 group by 來消除重複
SELECT book_id,sell_time
FROM sell_data
WHERE store_id = '1'
GROUP BY book_id
ORDER BY sell_time desc
LIMIT 0,10
可是這樣一來order by 所查詢的時間變成這本書第一次賣出的時間
無法正確排序最新的十筆
目前我使用的暫時解決方式是
由新往舊,一筆一筆的去找book_id
找到重複的就跳過
直到找齊10本為止
想要詢問是否有更符合需求的方式
感謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.4.223
推
10/19 10:57, , 1F
10/19 10:57, 1F