내가 계층 구조로 구성 오브젝트의 테이블이 있다고 가정MySQL의에서 그래프/계층 적 데이터를 쿼리하는 방법
A
|--B
|--C
| +--D
+--E
이들은 따라서 "부모 - 자식"테이블에 저장됩니다
parent child
A B
A C
C D
A E
위에서 정의한 구조를 얻기 위해 어떻게 쿼리합니까?
object full_path
A NULL
B A
C A
D A.C
E A
내가 개체가 깊은 하나 개 이상의 수준을 중첩하는 방법을 알아낼 수 없습니다 : 나는이 같은 정보를 생산하고 뭔가를 필요가 있다고 생각합니다. 그것은 테이블을 반복 할 필요가 있을지도 모른다고 느끼고 (SQL에서 가능한지 전혀 모른다), 전에는 결코 만나지 못한 쿼리를 사용한다.
추가 정보 :
- A는 유일한 고아 객체가 될 필요가 없습니다.
- 자녀가 여러 부모를 가질 수도 있지만 현재 해결하기 쉬운 시나리오에 대한 답변이 만족 스럽습니다. 다중 부모 구조체를 단순 부모 인
GROUP BY
및MIN
문으로 변환 할 수 있습니다.
모든 항목, 단 하나의 부모가 있는가하면 데이터가 하나의 머리를 가지고있다 (즉, 만은 부모가없는 모든 항목은의 후손) 및 중간 테이블에 , A에게는 부모가 없다는 기록이 있습니까? – joocer
수정 사항을 참조하십시오. A에는 부모가 없다는 레코드가 없지만 간단한 'left join'쿼리로 확인할 수 있습니다. – cammil