开发者

MySQL LIMIT and GROUP BY with JOIN

开发者 https://www.devze.com 2023-03-30 04:12 出处:网络
Is there a way to GROUP BY one tables column, but LIMIT by another in one query. Something like: SELECT items.*, subitems.*

Is there a way to GROUP BY one tables column, but LIMIT by another in one query. Something like:

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

... but where the LIMIT 10 applies to the amount of item records, not actual rows. so i get 10 items, but unlimited subitems, therefore potentially more than开发者_开发百科 10 actual rows (or not if there are equal or less children than parents).

I can then loop through these in php and set up the parent/child relationships. Or is there a better way of doing this?


You have to use a sub-query for this:

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;
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号