Ich arbeite mit einer Baumstruktur in MySQL, die mit dem geschachtelten Sets-Modell dargestellt wird.So wählen Sie sofortige Kinder und Vorfahren alle in derselben Abfrage
Ich hoffe, einige von Ihnen sql Experten können mir beim Erstellen einer SELECT-Abfrage helfen.
Ich möchte in der Lage sein, eine Reihe von Knoten mit LIKE übereinstimmen. Für jeden übereinstimmenden Knoten benötige ich auch eine durch Komma aufgelöste Liste der Vorfahren dieses Knotens und eine Komma-aufgelöste Liste der unmittelbaren Nachfolger dieses Knotens.
Ich bin nicht wirklich sicher, wo ich damit anfangen soll - wenn so etwas in einer einzigen Abfrage überhaupt möglich ist. (Derzeit beende ich dies mit einer Abfrage innerhalb einer Schleife.) Was ich hoffe, ist eine Ergebnismenge, die ungefähr so aussehen könnte ....
Beginnend mit der Zeichenkette "qu" und die Tabelle abfragend " Körper "Ich bekomme ...
Alle Vorschläge, wie Sie dies ohne Schleifen Abfragen erreichen würde sehr geschätzt werden.
Ich habe derzeit keine Zeit, um eine vollständige Antwort zu schreiben, aber wenn Sie Zugriff auf das Buch SQL Cookbook haben, deckt das Kapitel über hierarchische Abfragen die Verwendung von MySQL, um dieses Problem zu lösen. Für MySQL müssen Sie die Verzweigungstiefe kennen, um die Abfragen zu verwenden, aber das ist kein Problem - Sie wissen, wie tief Sie gehen möchten. Die Lösung ist nicht extrem trivial, aber es ist möglich. –
@Sheepsimulator - Danke, ich werde sehen, ob ich das Buch nachverfolgen kann. – Travis
Sheepsimulator, ich stimme nicht zu. es ist trivial zu lösen, wenn du weißt, welche Tiefe du brauchst - der Heilige Gral macht es für eine beliebige Tiefe. Oder na ja, nicht heiliger Gral, aber weißt du, willkürliche Tiefe macht das Problem interessant. IMO –