Heim >Datenbank >MySQL-Tutorial >Wie können rekursive Self-Joins in SQL Server hierarchische Daten abrufen?
Rekursive Selbstverknüpfungen mit SQL Server: Navigieren in hierarchischen Daten
Die rekursiven Selbstverknüpfungen von SQL Server bieten eine leistungsstarke Methode zum Durchqueren hierarchischer Datenstrukturen. Dies ist besonders wertvoll, wenn es um Eltern-Kind-Beziehungen innerhalb einer einzelnen Tabelle geht.
Stellen Sie sich eine Categories
Tabelle mit diesen Spalten vor:
Id
Name
ParentId
Eine rekursive Selbstverknüpfung ermöglicht es uns, die hierarchischen Beziehungen innerhalb dieser Tabelle zu extrahieren, einschließlich verschachtelter Kategorieebenen.
Anschauliches Beispiel:
Stellen Sie sich diese Kategoriehierarchie vor:
<code>- Business Laptops - Gaming Laptops - Ultrabooks - Compact Ultrabooks</code>
Um „Business-Laptops“ und seine übergeordneten Kategorien mithilfe eines rekursiven allgemeinen Tabellenausdrucks (CTE) abzurufen, können wir diese Abfrage verwenden:
<code class="language-sql">;WITH CTE AS ( SELECT id, name, name AS path, parent_id FROM Categories WHERE parent_id IS NULL UNION ALL SELECT t.id, t.name, CAST(cte.path + ',' + t.name AS VARCHAR(100)), t.parent_id FROM Categories t INNER JOIN CTE ON t.parent_id = CTE.id ) SELECT id, name, path FROM CTE WHERE name = 'Business Laptops';</code>
Die Ausgabe dieser Abfrage wäre:
<code>id name path 1 Business Laptops Business Laptops</code>
Rekursive Selbstverknüpfungen bieten eine effiziente Möglichkeit, Daten aus komplexen hierarchischen Strukturen zu verwalten und abzurufen und auf verwandte Informationen über mehrere Ebenen hinweg zuzugreifen.
Das obige ist der detaillierte Inhalt vonWie können rekursive Self-Joins in SQL Server hierarchische Daten abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!