вторник, 9 октября 2012 г.

Убрать повторяющиеся товары оставив дешевые

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

Есть таблица products, в ней поля name(название товара),  model(модель),
price(цена).

Поле model мы заполняем каким то образом, чтобы модель у одинаковых товаров совпадала, склеивая таким образом схожие позиции.

Нам нужно отсортировать товары по моделям, далее по цене (одинаковые модели), потом сгруппировать по модели, чтобы исключить повторы (останутся самые первые товары в группах), но вот в чем косяк - в mysql order должен идти после group, что нам не подходит, для решения проблемы делаем вот так



SELECT * FROM

(
   SELECT name,model,price
   FROM `products`
   ORDER BY model,price
) as tmp


GROUP BY model

Комментариев нет:

Отправить комментарий