Это простой выбор из одной таблицы. Цель состоит в том, чтобы выбрать четыре случайных продукта, по одному из каждой из x категорий, с парой ограничений «где». Я пробовал это:
SELECT pName,
pID
from products
WHERE pDisplay=1
AND pFeatured=1
GROUP BY pCategory
ORDER BY RAND()
LIMIT 0,4
Этот вид работает, но он всегда возвращает один и тот же продукт из любой данной категории. Я хочу изменить показанные продукты, но пока показываю только один продукт для любой категории.
Я тоже пробовал:
SELECT DISTINCT(pCategory)
pName,
pID
from products
WHERE pDisplay=1
AND pFeatured=1
ORDER BY RAND()
LIMIT 0,4
Я думаю, что может потребоваться два выбора - первый, чтобы получить случайные 4 категории, второй, чтобы выбрать случайный ряд из каждого из них, но a. Я не уверен, как это сделать, и б. предпочел бы использовать один запрос, если это возможно.