This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
mysql:adjacencytree:index [13.03.2014 09:33:13] yaslaw [Ausgangslage] |
mysql:adjacencytree:index [12.12.2016 12:41:56] (current) yaslaw |
||
---|---|---|---|
Line 28: | Line 28: | ||
Das ergibt dann einen Baum der so aussieht. | Das ergibt dann einen Baum der so aussieht. | ||
- | Die innerhalb eines Level geht nach sort und anschliessen nach title (für die Einträge ''sort IS NULL'') | + | Die innerhalb eines Level geht nach sort und anschliessen nach title (für die Einträge |
+ | \\ ''sort IS NULL'') | ||
^ Baumdarstellung ^^^^^^^ | ^ Baumdarstellung ^^^^^^^ | ||
^ lvl1 ^ lvl2 ^ lvl3 ^ lvl4 ^ lvl5 ^ title ^ Bemerkung ^ | ^ lvl1 ^ lvl2 ^ lvl3 ^ lvl4 ^ lvl5 ^ title ^ Bemerkung ^ | ||
| 01 | | | | | Node #001 | | | | 01 | | | | | Node #001 | | | ||
- | | | 02 | | | | Node #002 | | | + | | | 02 | | | | Node #002 | Kein Sort definiert. Darum kommt Node 2 vor Node 4 | |
| | | 08 | | | Node #008 | Dieser Node kommt vor dem Node 3, dank der sort=A | | | | | 08 | | | Node #008 | Dieser Node kommt vor dem Node 3, dank der sort=A | | ||
| | | | 10 | | Node #010 | | | | | | | 10 | | Node #010 | | | ||
Line 48: | Line 49: | ||
====1) Einfache Pfad-Liste für eine id==== | ====1) Einfache Pfad-Liste für eine id==== | ||
- | Hier habe ich eine zusammenfassung. Das ganze ausführlich und mit Erklärung: [[:mysql:adjacencytree:pathperid]] oder als Beispiel zu Spielen [[http://sqlfiddle.com/#!8/252a2/1|bei SQLFiddle]] | + | Hier habe ich eine zusammenfassung. Das ganze ausführlich und mit Erklärung: |
+ | [[mysql:adjacencytree:pathlistperid]] oder als Beispiel zu Spielen [[http://sqlfiddle.com/#!8/252a2/1|bei SQLFiddle]] | ||
Mit dem folgenden SQL kann man den ganzen Ast auslesen. Ich nehme mal die ID 9 als Startpunkt | Mit dem folgenden SQL kann man den ganzen Ast auslesen. Ich nehme mal die ID 9 als Startpunkt | ||
Line 177: | Line 179: | ||
====3) Alle Unterordner einer id==== | ====3) Alle Unterordner einer id==== | ||
Natürlich kann es auch interessant sein, den Baum von oben nach unten zu durchsuchen. Die Aufgabenstellung könnte etwa so aussehen: Gib mir alle Unterordner einer bestimmten id. | Natürlich kann es auch interessant sein, den Baum von oben nach unten zu durchsuchen. Die Aufgabenstellung könnte etwa so aussehen: Gib mir alle Unterordner einer bestimmten id. | ||
- | Dazu kann an den Code aus Beispiel '' als Grundlage nehmen. Wenn wir da die Gruppierung weglassen, haben wir eine Auflistung aller ids mit den dazugehörigen parentids. In diesen parentids kann man nun den Ordner suchen und - tada - alle ids die zu diesem Ordner gehören werden ausgegeben. | + | Wenn wir da die Gruppierung weglassen, haben wir eine Auflistung aller ids mit den dazugehörigen parentids. In diesen parentids kann man nun den Ordner suchen und - tada - alle ids die zu diesem Ordner gehören werden ausgegeben. |
<code sql> | <code sql> | ||
SELECT | SELECT | ||
Line 207: | Line 209: | ||
Ergibt mit id=2 das Resultat | Ergibt mit id=2 das Resultat | ||
- | ^ Ausgabe von Beispiel 4: Alle Unterordner einer id ^^ | + | ^ Ausgabe von Beispiel 3: Alle Unterordner einer id ^^ |
^ id ^ title ^ | ^ id ^ title ^ | ||
| 2 | Node #002 | | | 2 | Node #002 | | ||
Line 220: | Line 222: | ||
<code sql> | <code sql> | ||
CREATE TABLE nav | CREATE TABLE nav | ||
- | (`id` int, `parentId` varchar(2), `title` varchar(9), `sort` int) | + | (`id` int, `parentId` int, `title` varchar(9), `sort` int) |
; | ; | ||
Line 237: | Line 239: | ||
INSERT INTO `nav` (`id`, `parentId`, `title`, `sort`) VALUES (13, 11, 'Node #013', 1); | INSERT INTO `nav` (`id`, `parentId`, `title`, `sort`) VALUES (13, 11, 'Node #013', 1); | ||
</code> | </code> | ||
+ | |||
+ | ===== Spielwiese ===== | ||
+ | *[[http://sqlfiddle.com/#!2/e1702/1|Beispiel 1 bei sqlfiddle.com]] | ||
+ | *[[http://sqlfiddle.com/#!2/e1702/2|Beispiel 2 bei sqlfiddle.com]] | ||
+ | *[[http://sqlfiddle.com/#!2/e1702/3|Beispiel 3 bei sqlfiddle.com]] | ||
{{tag>MySQL Tree}} | {{tag>MySQL Tree}} |