Maison >base de données >tutoriel mysql >Comment les auto-jointures récursives dans SQL Server peuvent-elles récupérer des données hiérarchiques ?
Auto-jointures récursives SQL Server : navigation dans les données hiérarchiques
Les auto-jointures récursives de SQL Server offrent une méthode puissante pour parcourir les structures de données hiérarchiques. Ceci est particulièrement utile lorsqu'il s'agit de relations parent-enfant au sein d'une seule table.
Considérons un Categories
tableau avec ces colonnes :
Id
Name
ParentId
Une auto-jointure récursive nous permet d'extraire les relations hiérarchiques au sein de ce tableau, englobant les niveaux de catégories imbriqués.
Exemple illustratif :
Imaginez cette hiérarchie de catégories :
<code>- Business Laptops - Gaming Laptops - Ultrabooks - Compact Ultrabooks</code>
Pour récupérer « Business Laptops » et ses catégories parentes à l'aide d'une expression de table commune récursive (CTE), nous pouvons utiliser cette requête :
<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>
Le résultat de cette requête serait :
<code>id name path 1 Business Laptops Business Laptops</code>
Les auto-jointures récursives offrent un moyen efficace de gérer et de récupérer des données à partir de structures hiérarchiques complexes, en accédant aux informations associées sur plusieurs niveaux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!