Mysql запрос parent_id проблема заказа - PullRequest
0 голосов
/ 14 декабря 2010
SELECT * FROM `websiteadmin_pm_categories` WHERE `username`='demo' LIMIT 0, 30 ; 

Вывод:

id parent_id active_en name_en description_en link_en username
47 0 1 DVD     demo
48 0 1 Spill     demo
49 0 1 Utstyr     demo
50 49 1 PC     demo
51 47 1 Barnefilmer   demo

Должно быть:

    id parent_id active_en name_en description_en link_en username
    47 0 1 DVD     demo
    51 47 1 Barnefilmer   demo
    48 0 1 Spill     demo
    49 0 1 Utstyr     demo
    50 49 1 PC     demo

Проблема здесь в ID и PARENT_ID, PARENT_ID должен указываться под идентификатором, которому они принадлежат.

Ответы [ 2 ]

0 голосов
/ 07 мая 2011

Этот запрос делает именно то, что вы хотите, но этот выполняет только одноуровневую родительскую / дочернюю иерархию ... если вы хотите более глубокое вложение, он становится более сложным, но МОЖЕТ быть выполнен на третьем уровне (яна самом деле сделал это раньше сегодня).

select *
   from 
      websiteadmin_pm_categories w1
         left join websiteadmin_pm_categories w2
            on w1.parent_id = w2.id
   WHERE
      w1.username = 'demo'
   order by
      case when w1.parent_id = 0 then w1.id else w1.parent_id end,
      w1.parent_id
0 голосов
/ 14 декабря 2010

Я не уверен, возможно ли такое решение.Я был бы весьма удивлен, увидев, реализовано ли это по умолчанию в какой-либо базе данных.

Такое решение должно присутствовать в логике отображения, а не в запросах, поскольку данные не зависят от отношения между ID и PARENT_ID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...