繁体   English   中英

带有JOIN的MySQL LIMIT和GROUP BY

[英]MySQL LIMIT and GROUP BY with JOIN

有没有办法将GROUP BY一个表列,但LIMIT由另一个查询中的另一个。 就像是:

SELECT items.*, subitems.*
FROM items
LEFT OUTER JOIN subitems ON subitems.subitem_itemId = items.item_id
GROUP BY subitem.subitem_id
LIMIT 10

...但是LIMIT 10适用于项目记录的数量,而不是实际行数。 所以我得到10个项目,但是没有子项目,因此可能超过10个实际行(或者如果孩子的数量等于或少于父母,则不行)。

然后我可以在php中循环这些并设置父/子关系。 或者有更好的方法吗?

您必须使用子查询:

SELECT items.*,subitems.*
FROM (
    SELECT *
    FROM items
    LIMIT 10
) AS items
LEFT OUTER JOIN subitems ON subitems.subitem_itemId = items.item_id
GROUP BY subitem.subitem_id;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM