MySQL LIMIT и GROUP BY с JOIN - PullRequest
       1

MySQL LIMIT и GROUP BY с JOIN

3 голосов
/ 23 августа 2011

Есть ли способ 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 и установить отношения родитель / потомок. Или есть лучший способ сделать это?

1 Ответ

5 голосов
/ 23 августа 2011

Вы должны использовать подзапрос для этого:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...