Heim > Datenbank > MySQL-Tutorial > Wie rufe ich alle untergeordneten IDs in einer hierarchischen Struktur von MySQL mit einer einzelnen Abfrage ab?

Wie rufe ich alle untergeordneten IDs in einer hierarchischen Struktur von MySQL mit einer einzelnen Abfrage ab?

Barbara Streisand
Freigeben: 2025-01-25 16:12:09
Original
867 Leute haben es durchsucht

How to Retrieve All Child IDs in a MySQL Hierarchical Structure Using a Single Query?

MySQL Hierarchische rekursive Abfragethode -Erstellungsmethode

Frage

Sie haben eine geschichtete MySQL -Tabelle, die jeweils eine ID, einen Namen und eine übergeordnete ID hat. Sie möchten eine einzelne MySQL -Abfrage verwenden, um alle Sub -IDs abzurufen, die die übergeordnete ID geben.

Antwort

für MySQL 8:

Verwendung mit rekursiver Syntax:

für MySQL 5.x:

<code class="language-sql">WITH RECURSIVE cte (id, name, parent_id) AS (
  SELECT     id,
             name,
             parent_id
  FROM       products
  WHERE      parent_id = 19
  UNION ALL
  SELECT     p.id,
             p.name,
             p.parent_id
  FROM       products p
  INNER JOIN cte
          ON p.parent_id = cte.id
)
SELECT * FROM cte;</code>
Nach dem Login kopieren
Verwenden interner Variablen, Pfad -IDs oder Selbstkonnektion:

Neilian Variablen:

Pfadstil -Kennung:

Der ID -Wert der Zuweisung hierarchischer Informationen (Pfad):

<code class="language-sql">SELECT  id,
        name,
        parent_id 
FROM    (SELECT * FROM products
         ORDER BY parent_id, id) products_sorted,
        (SELECT @pv := '19') initialisation
WHERE   FIND_IN_SET(parent_id, @pv)
AND     LENGTH(@pv := CONCAT(@pv, ',', id))</code>
Nach dem Login kopieren

Dann verwenden Sie diese Abfrage:

Das obige ist der detaillierte Inhalt vonWie rufe ich alle untergeordneten IDs in einer hierarchischen Struktur von MySQL mit einer einzelnen Abfrage ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage