作者no1kk (心中在下雨)
看板Database
标题[SQL ] 问 group by 和 order by 复合使用时的问题
时间Mon Oct 19 10:38:52 2009
假设我现在要从资料库里面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
1F:推 PsMonkey:用 sub-query,先 group by book_id 然後在挑时间 10/19 10:57