mysql select предельный результат - PullRequest
0 голосов
/ 05 октября 2011

У меня есть запрос:

select id, name from categories where parent_id in (
    select id 
    from categories 
    where top_main_place > 0
)

выбирает дочернюю информацию (внешний выбор) своих родительских узлов (внутренний выбор)

проблема в том, что мне не нужно иметь данные всех дочерних узлов, максимум 6 данных дочерних узлов на одного родителя id

как мне достичь этого результата?

кстати, извините за мой плохой английский

Ответы [ 3 ]

2 голосов
/ 05 октября 2011

Вы должны упорядочить внешний запрос по parent_id, присвоить каждой строке номер строки (сброс номера строки при изменении parent_id), а затем отфильтровать любую строку с номером строки больше 6, проверьте этот вопрос например и sql код.

1 голос
/ 05 октября 2011
select id, name FROM (
    select id, name, IF(@parent_id=parent_id, @count:=@count+1, @count:=0) as count, @parent_id:=parent_id from categories, (select @count:=0, @parent_id:=0) as x where parent_id in (
        select id 
        from categories 
        where top_main_place > 0
    ) order by parent_id
) y where count <= 6;
1 голос
/ 05 октября 2011

На этой странице показано, как ограничить количество результатов, возвращаемых запросом, на нескольких диалектах SQL: http://www.w3schools.com/sql/sql_top.asp

...