
此查询以随机顺序返回加入类别的所有项目:
SELECtc.id AS cid, c.category, i.id AS iid, i.nameFROM categories cINNER JOIN items i ON c.id = i.categoryORDER BY RAND()
要将每个类别限制为一个类别,请将查询包装在 partial中
GROUP BY:
SELECt * FROM ( SELECt c.id AS cid, c.category, i.id AS iid, i.name FROM categories c INNER JOIN items i ON c.id = i.category ORDER BY RAND()) AS shuffled_itemsGROUP BY cid
请注意,当查询同时具有
GROUP BYand
ORDERBY子句时,将在排序之前执行分组。这就是为什么我使用了两个查询的原因:第一个对结果进行排序,第二个对结果进行分组。
我了解此查询不会赢得任何比赛。我愿意提出建议。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)