Нужно выбрать 5 последних записей по категориям? - PullRequest
1 голос
/ 15 декабря 2011

Мне нужно выбрать пять последних продуктов каждой категории бренда, а затем отобразить результаты, сгруппированные по категориям.

База данных MySQL выглядит так:

Таблица product:

product_id (pk) 
product_name 
product_etc 
product_publish_date 
brand_id (fk)

Таблица brand

brand_id (pk) 
brand_name

Результаты должны получиться следующим образом ...

brand_a product k
brand_a product a
brand_a product h
brand_a product l
brand_a product 33

brand_b product h
brand_b product z
brand_b product 9
brand_b product ddd
brand_b product a

Пробовал с

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

попробуй с:

SELECT p.*
FROM product p1
LEFT OUTER JOIN product p2
  ON (p1.brand_id = p2.brand_id AND p1.product_id < p2.product_id)
GROUP BY p1.item_id
HAVING COUNT(*) <= 5
ORDER BY brand_id, product_publish_date;

Как сказал Билл Карвин, это та же проблема, что и в его ссылке - мой ответ - просто адаптация этого ответа к вашему делу.

1 голос
/ 15 декабря 2011
select brand_name, product_name, count(*)
from brand
INNER JOIN product on brand.brand_id = product.brand_id
order by product_publish_date
group by brand_name, product_name
having count(*) <= 5
...