Xpoint
   [напомнить пароль]

Получить из каждой категории по 10 элементов

Метки: [без меток]
2011-06-13 12:13:59 [обр] Андрей[досье]
Добрый день. Столкнулся со следующей задачей: есть таблица категорий и таблица элементов. Нужно вывести по десять элементов (название,uri) для каждой категории, id которой 5, 8, 11, 21, 32. Никак не погу решить. Помогите, пожалуйста.
Таблицы:
_____________
cats
- - - - - - - -
id
uri
name
_____________
elems
- - - - - - - -
id
uri
name
cat_id
_____________
спустя 10 часов [обр] Филипп Ткачев(0/115)[досье]
Мне пока в голову пришел запрос с четырьмя UNION.
спустя 21 час [обр] Павел Карасёв(0/14)[досье]
Можно сделать алиасами (вложенными селектами) в один запрос
спустя 6 часов [обр] Евгений Седов aka KPbIC(0/187)[досье]
сообщение промодерировано
SELECT
    name, uri
FROM
    (
        SELECT
            id,
            uri,
            name,
            cat_id,
            ROW_NUMBER() OVER(PARTITION BY cat_id ORDER BY id) AS row_num
        FROM
            elems
        WHERE
            cat_id IN (5, 8, 11, 21, 32)
    ) AS foo
WHERE
        row_num <= 10;
спустя 1 день 16 часов [обр] Филипп Ткачев(0/115)[досье]
Евгений Седов aka KPbIC[досье], а в MySQL такой прием сработает?
спустя 20 часов [обр] Евгений Седов aka KPbIC(0/187)[досье]
сообщение промодерировано
Работает во взрослых базах. Проверял в Postgres. Под MySQL давно не пишу, но если я ничего не пропустил, то в MySQL работать не будет.
Powered by POEM™ Engine Copyright © 2002-2005