我有两个表:
每个项目都属于一个类别。我想做的是每个类别选择5个项目,但总共说20个项目。
SELECT item_id, item_name, items.catid FROM items, categories WHERE items.catid = categories.catid GROUP BY items.catid LIMIT 0,5 //5 per category group
编辑:如果每个类别有5个以上的项目,则应按item_id(数字值)对其进行排序
试试这个查询-
SELECT item_id, item_name, catid FROM (SELECT t1.*, COUNT(*) cnt FROM items t1 LEFT JOIN items t2 ON t2.catid = t1.catid AND t2.item_id <= t1.item_id GROUP BY t1.catid, t1.item_id ) t WHERE cnt < 6 -- LIMIT 20
它将显示每个类别的前5个项目。LIMIT 20如果需要,请取消注释。Categories如果需要,请加入表格。
LIMIT 20
Categories