我需要从几个类别的表格产品中获取记录,而不会冒险接收集中在少数类别中的记录。
我的sqlFiddle:http://sqlfiddle.com/#!2/060877/2
正如您在SQLFiddle中看到的,我有5个类别和20个产品(当然它是一个例子)。例如,我希望获得10种产品,而不会有从第2类获得5种或更多产品的风险,而在5种产品中只能获得1种(或者没有)。
如果可能的话,按每个类别的数量比例返回(如果是6个产品,则返回3等等)。
MySQL会自动为我做这个吗?
答案 0 :(得分:0)
我的意思(根据需要设置限制):
(SELECT p.*, c.name AS category
FROM products AS p
INNER JOIN category c ON p.category_id=c.id
WHERE c.id = 1 LIMIT 6)
UNION
(SELECT p.*, c.name AS category
FROM products AS p
INNER JOIN category c ON p.category_id=c.id
WHERE c.id = 2 LIMIT 3)
ORDER BY RAND()