Реализовать одним SQL запросом, без использования вложенных SELECT-ов (Без JOIN)

Тема в разделе "Базы данных", создана пользователем Tycoon, 12 апр 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Tycoon

    Tycoon Постоялец

    Регистр.:
    20 апр 2006
    Сообщения:
    77
    Симпатии:
    36
    дана таблица:
    id - ID товара
    category_id - ID категории/группы товара
    name - наименование
    price - цена

    Конкретно:
    Выбрать по 3 товара с максимальной ценой из каждой категории.
    Реализовать одним SQL запросом, без использования вложенных SELECT-ов (Без JOIN)
     
  2. johny

    johny Создатель

    Регистр.:
    9 апр 2007
    Сообщения:
    34
    Симпатии:
    8
    PHP:
    mysql_query("SELECT MAX(price) FROM `table_name` WHERE category_id = 'cat_id' LIMIT 0,3") or mysql_error();
    table_name и cat_id заменить на название таблицы и номер категории соответственно. Чтобы сделать выборку из каждой категории, заведи цикл и в него засунь этот запрос.
     
  3. fly21

    fly21 Создатель

    Регистр.:
    11 авг 2009
    Сообщения:
    19
    Симпатии:
    2
    Если сделать цикл прохода категорий, то внутри можно и так спросить:
    Код:
    SELECT *  , MAX( `price` ) AS `maxPrice`
    FROM `Название_таблицы`
    WHERE `category_id` = 'ID_категории'
    GROUP BY `id`
    ORDER BY `maxPrice` DESC
    LIMIT 0 , 3 
     
Статус темы:
Закрыта.