2010-12-14 4 views
0
SELECT * FROM `websiteadmin_pm_categories` WHERE `username`='demo' LIMIT 0, 30 ; 

출력 :MySQL의 쿼리 PARENT_ID 순서 문제

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 그들이 속한 ID 하에서 와야 .

+0

부모님과 websiteadmin_pm_categories에 대한 테이블 구조를 게시 할 수 있습니까? 매우 간단해야합니다. – austinbv

답변

0

그러한 해결책이 가능한지 확실하지 않습니다. 이것이 어떤 데이터베이스에서도 기본적으로 구현되는지는 놀랍습니다. 데이터가이 쿼리는 사용자가 원하는 않습니다 정확히 ID 및 PARENT_ID

0

사이의 관계는 독립적이지만,이 하나의 단지처럼

솔루션의이 종류는, 오히려 쿼리보다 디스플레이 논리에 존재한다 한 수준의 상위/하위 계층 구조 ... 더 깊숙한 중첩을 원한다면 더 복잡해질 수 있지만 세 번째 수준까지 수행 할 수 있습니다 (실제로는 이전에이 작업을 실제로 수행했습니다).

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