Задача примерно такая, допустим в интернет-магазине продаются комплектующие от разных поставщиков, у одного поставщика дешевле одни ноутбуки, у другого другие, у третьего третьи, чтобы не путать покупателей нужно исключить повторные позиции, но при этом показать только более дешевые товары.
Есть таблица 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
Есть таблица 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
Комментариев нет:
Отправить комментарий