簡體   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