我现在有点卡住了,可以使用一些快速的MySQL帮助。对于每个不同的MySQL,获得一定数量的条目
说我有一张表,包含产品评论,列product_id
,customer
, date
。 现在对于每一个不同的产品,我想得到3个第一评论。 ORDER BY日期很简单,但我坚持如何为每个不同的product_id准确地获取3个条目。由于它全部在同一个表中,因此INNER JOIN实际上没有任何意义,GROUP BY也不是。 那么,有什么想法?
编辑:我已经成功地使用在SQLFiddle此查询:
SELECT * FROM (
SELECT customer, DATE, p_asin, @curTop :=
CASE WHEN (
@prevP_asin <> p_asin
)
THEN 1
ELSE @curTop +1
END AS Top, @prevP_asin := p_asin
FROM reviews2 r, (
SELECT @curTop :=0
) A
ORDER BY r.p_asin, r.date) B
WHERE top <=3
但由于某些原因,当我尝试将其应用到我在phpMyAdmin表,与顶级的编号不被启动1用于新产品,而是统筹在一起。小提琴和实际表格的表现如何不同?
http://stackoverflow.com/questions/3140589/mysql-query-select-top-3-rows-from-table-for-each-category可能会有帮助。 – 2013-05-01 14:58:53