Есть 3 таблицы. 1. Категории. id | pid | title ... 2. Товары id | title | ... 3. Связь Категория => Товар id_cat | id_tovar Нужно например, из категорий: 2, 5, 56 выдернуть по 5 товаров. Сейчас склоняюсь к склейке в php нескольких запросов с лимитом и объедении в UNION. Есть ещё какие нибудь решения грамотные, спасибо.
А зачем третья таблица ("связь")? Почему бы не держать id категории в таблице товаров? Впрочем, вам видней. Пробуйте такой вариант: Код (Text): SELECT * FROM `product` WHERE `item_id` IN( SELECT `t1`.`item_id` FROM `prod_to_cat` `t1` LEFT JOIN `prod_to_cat` `t2` ON `t2`.`cat_id` = `t1`.`cat_id` AND `t2`.`item_id` <= `t1`.`item_id` WHERE `t1`.`cat_id` IN(1,3) GROUP BY `t1`.`cat_id`, `t1`.`item_id` HAVING COUNT(*) < 3) В примере, я выбираю по два тавара из категорий с id 1 и 3 --- Добавлено --- На всякий случай, если решите держать категорию с товаром, то вот запрос для него
Только не забудьте, что если вам надо вытянуть по 5 товаров, то измените условие на "HAVING COUNT(*) < 6"
Хм. а можно к рез-ту категорию получить id. Нам нужно вывести некий анонс товаров в каждой категории, например чел. просматривает 10 категорий, а к ним идут по несколько товаров...