Maison > base de données > tutoriel mysql > Comment effectuer des requêtes récursives dans SQLite3 pour rechercher toutes les sous-parties d'une SuperPart donnée ?

Comment effectuer des requêtes récursives dans SQLite3 pour rechercher toutes les sous-parties d'une SuperPart donnée ?

Linda Hamilton
Libérer: 2024-12-31 20:56:12
original
483 Les gens l'ont consulté

How to Perform Recursive Queries in SQLite3 to Find All Subparts of a Given SuperPart?

Requêtes récursives dans SQLite3

Question :

Dans SQLite3, comment pouvez-vous effectuer une requête récursive pour trouver toutes les paires d'un SuperPart donné avec son sous-parties ?

Réponse :

Dans les versions SQLite 3.8.3 et supérieures, les requêtes récursives sont prises en charge à l'aide d'expressions de table communes (CTE) avec la syntaxe WITH :

WITH RECURSIVE Subparts AS (
  SELECT Part, SuperPart FROM Part
  UNION ALL
  SELECT p.Part, p.SuperPart FROM Part p JOIN Subparts s ON p.SuperPart = s.Part
)
SELECT * FROM Subparts;
Copier après la connexion

Pour les versions antérieures à 3.8.3, SQLite ne prenait pas en charge les CTE, y compris les récursifs CTE. Par conséquent, la récursivité doit être implémentée manuellement dans le code client, comme suit :

  1. Récupérer la ligne initiale et les ID de sous-partie.
  2. Récupérer les lignes et les ID de sous-partie pour les sous-parties.
  3. Répétez les étapes 1 et 2 jusqu'à ce qu'aucune ligne ne soit renvoyée.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal