2013-03-26 1 views
0

나는 1 테이블을 쿼리하는 쿼리를 효과적으로 작동하는 데 문제가 있습니다. 내가하고 싶은 무엇MYSQL 쿼리 데이터 및 조합, 그룹 및 주문 결과

ID NAME  PARENT_ID SORT_ORDER 
1  Home  NULL   1 
2  Contact NULL   3 
3  Service NULL   2 
4  Service1 3   0 
5  Service3 3   2 
6  Service2 3   1 

그 ID를 가진 결과에서 나타나는 PARENT_ID이 결과와 함께이 테이블에서 데이터를 반환하고, 모든 결과를하는 것입니다 : 여기에 테이블 데이터의 예입니다 그들의 SORT_ORDER에 표시하십시오. 위의 데이터를 쿼리하는 방법은 다음과 같습니다.

ID NAME  PARENT_ID SORT_ORDER 
1 Home  NULL   1 
3 Service NULL   2 
4 Service1 3   0 
6 Service2 3   1 
5 Service3 3   2 
2 Contact Null   3 

피드백을 보내 주시면 대단히 반갑습니다.

종류와 관련,

폴 내가 제대로 논리를 이해한다면

답변

0

, 당신은이를 사용할 수 있습니다

SELECT 
    t1.* 
FROM 
    yourtable t1 LEFT JOIN yourtable t2 
    ON t1.PARENT_ID = t2.ID 
ORDER BY 
    COALESCE(t2.SORT_ORDER, t1.SORT_ORDER), 
    t1.PARENT_ID IS NOT NULL, 
    SORT_ORDER 

here 바이올린을 참조하십시오.

+0

정확하게 필요한 방식으로 작동했습니다. 매우 감사합니다! – Paul