Выбрать один товар из базы для компаний

designf

Постоялец
Регистрация
24 Май 2009
Сообщения
104
Реакции
8
Прошу помочь с направлением.

Очень часто используется в интернет-магазинах.

Суть следующая.

Есть каталог фирм - одна таблица данных.
Есть товары фирм - другая таблица.

таблица фирм company

id company_name
1 roga
2 kopita
3 firma

таблица их товаров tovary
id_tovar id_firm tovar
1 2 копыто
2 2 копыто2
3 2 копыто3
4 1 рога
5 1 рога 2

Т.е. таблицу company и tovary связывает id_firm

Сделать запрос по выводу товаров и фирм из двух таблиц получается.

т.е. вывести труда не составит таблицу с товарами и названием фирмы чей товар

1 2 копыто kopita
2 2 копыто2 kopita
3 2 копыто3 kopita
4 1 рога roga
5 1 рога 2 roga

Но нужно следующее

Нужно вывести по одному последнему товару для каждой фирмы

Т.е. чтобы было так

3 2 копыто3 kopita
5 1 рога 2 roga

Т.е. это не случайная выборка и не выборка по id а именно запрос должен выбрать один последний добавленный товар с указанием фирмы. Так часто делают в каталогах товаров, например выводят последние добавленные товары от каждой фирмы.
 
попробуйте в таблицу товаров добавить поле date_added и потом выбирать товар по MAX дате и групировать по фирме и продукту, а потом джоин по дате и фирме и продукту + ещё джоин лдя названия
 
Поле даты есть. Вчера пытался что-то группировать, никак не выходит.
 
Ну а почему нельзя выбирать по id_tovar, если он автоинкремент?!! Суть то та же, получается чем больше id, тем новее запись..
 
выбирать не проблема из одной таблицы. А вот как их связать JOIN GROUP или делать по очереди.
 
Select * FROM tovar
Inner Join cat on (id.tovar = id_tovara.cat)
ORDER By id.tovar DESC
 
Назад
Сверху