L'obtention de données de hiérarchie de l'auto-référencement tables

Disons que vous avez le tableau suivant:

items(item_id, item_parent)  

... et c'est un auto-référencement de table - item_parent se réfère à item_id.

Quelle requête SQL utiliseriez-vous pour SÉLECTIONNER tous les éléments dans le tableau, avec leur profondeur où la profondeur d'un élément est la somme de tous les parents et grands-parents de cet élément.

Si ce qui suit est le contenu de la table:

item_id     item_parent
----------- -----------
1           0          
2           0            
3           2          
4           2          
5           3          

... la requête doit récupérer l'ensemble des objets:

{"item_id":1,"profondeur":0}

{"item_id":2,"profondeur":0}

{"item_id":3,"profondeur":1}

{"item_id":4,"profondeur":1}

{"item_id":5,"profondeur":2}

P. S. je suis à la recherche d'une base de données MySQL approche prise en charge.

  • Recherche pour "expression de table commune Récursive".
  • La base de données, et la version? Requêtes récursives sont spécifiques au fournisseur, si la prise en charge à tous.
  • C'est en supposant qu'il est à l'aide de MS SQL Server.
  • Vrai, mais l'expression de table commune Récursive font partie de la norme SQL Server n'est pas le seul produit qui les prend en charge.
  • Emmanuil: Si vous avez besoin de MySql réponses spécifiques, alors vous devriez avoir précisé que, quelque part.
  • Je m'excuse à ce sujet. J'ai tort de supposer que la réponse pourrait s'appliquer à n'importe quel SGBD.