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

Тема в разделе "Базы данных", создана пользователем designf, 2 июл 2014.

Модераторы: latteo
  1. designf

    designf Постоялец

    Регистр.:
    24 май 2009
    Сообщения:
    105
    Симпатии:
    16
    Прошу помочь с направлением.

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

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

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

    таблица фирм 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 а именно запрос должен выбрать один последний добавленный товар с указанием фирмы. Так часто делают в каталогах товаров, например выводят последние добавленные товары от каждой фирмы.
     
  2. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.723
    Симпатии:
    2.097
    попробуйте в таблицу товаров добавить поле date_added и потом выбирать товар по MAX дате и групировать по фирме и продукту, а потом джоин по дате и фирме и продукту + ещё джоин лдя названия
     
  3. designf

    designf Постоялец

    Регистр.:
    24 май 2009
    Сообщения:
    105
    Симпатии:
    16
    Поле даты есть. Вчера пытался что-то группировать, никак не выходит.
     
  4. MadChild

    MadChild Постоялец

    Регистр.:
    23 янв 2013
    Сообщения:
    72
    Симпатии:
    5
    Ну а почему нельзя выбирать по id_tovar, если он автоинкремент?!! Суть то та же, получается чем больше id, тем новее запись..
     
  5. designf

    designf Постоялец

    Регистр.:
    24 май 2009
    Сообщения:
    105
    Симпатии:
    16
    выбирать не проблема из одной таблицы. А вот как их связать JOIN GROUP или делать по очереди.
     
  6. MadChild

    MadChild Постоялец

    Регистр.:
    23 янв 2013
    Сообщения:
    72
    Симпатии:
    5
    Select * FROM tovar
    Inner Join cat on (id.tovar = id_tovara.cat)
    ORDER By id.tovar DESC