sortowanie hierarchiczne mySQL
Mam schemat, który zasadniczo wygląda tak:
<code>CREATE TABLE `data` ( `id` int(10) unsigned NOT NULL, `title` text, `type` tinyint(4), `parent` int(10) ) </code>
Thetype
pole jest tylko wyliczeniem, gdzie 1 jest rodzajem rodzica, a 2 jest rodzajem dziecka (w rzeczywistości istnieje wiele typów, w których niektóre powinny zachowywać się jak rodzice, a niektóre jak dzieci). Theparent
Pole wskazuje, że rekord jest dzieckiem innego rekordu.
Wiem, że prawdopodobnie nie jest to idealne rozwiązanie dla zapytania, które chcę zbudować, ale z tym właśnie muszę pracować.
Chciałbym posortować i pogrupować dane, aby rekordy nadrzędne były sortowane wedługtitle
i zgrupowane pod każdym rodzicem są rekordy dziecka posortowane wedługtitle
. Tak jak:
<code> ID | title |type |parent -------------------------------- 4 | ParentA | 1 | 2 | ChildA | 2 | 4 5 | ChildB | 2 | 4 7 | ParentB | 1 | 9 | ChildC | 2 | 7 1 | ChildD | 2 | 7 </code>
**Edytować **
Powinniśmy być w stanie wziąćtype
pole całkowicie poza obrazem. Jeśliparent
nie jest pusty, więc powinien być zgrupowany pod spodem.