У меня есть 2 таблицы: x_products
и x_category
MySQL внутреннего соединение, предел для каждой категории
Я должен выбрать 3 последние продукты вставленных (заказ по x_products.data
колонка, по убыванию) для каждой категории с помощью одного запроса.
Моя идея заключалась в использовании техники INNER JOIN
(для использования одного запроса).
Я пытался использовать LIMIT 0,3
, но только последние 3 продукты возвращаются (3 в общей сложности, но не для каждой категории.
SELECT products.*
FROM x_products products
INNER JOIN x_category categories
ON products.category = categories.id
ORDER BY products.data DESC LIMIT 0,3
Как я мог выбрать 3 продукта для каждой категории, но не 3 модели в общей сложности?
Посмотрите на инструкцию 'GROUP BY' – Wolph
Проверьте этот http: //stackoverflow.com/questions/12113699/get-top-n-records-for-each-group-of-grouped-results \ –
Все еще боретесь? Если вам нравится, подумайте о следующем простом двухэтапном курсе действий: 1. Если вы еще этого не сделали, укажите надлежащие DDL (и/или sqlfiddle), чтобы мы могли легче реплицировать проблему. 2. Если вы еще этого не сделали, укажите желаемый набор результатов, соответствующий информации, представленной на шаге 1. – Strawberry