MySql8 WITH RECURSIVE rekursive Abfrage Eltern-Kind-Sammlungsmethode

MySql8 WITH RECURSIVE rekursive Abfrage Eltern-Kind-Sammlungsmethode

Hintergrund

Wenn Sie eine Funktion entwickeln, die Kommentaren ähnelt, müssen Sie bei Bedarf eine Teilmenge aller Kommentare abfragen. Die Implementierungsmethoden sind in verschiedenen Datenbanken unterschiedlich. Dieser Artikel verwendet die MySQL-Datenbank, Version 8.0

  • START [Param] CONNECT BY PRIOR kann in Oracle-Datenbanken verwendet werden
  • In MySQL müssen Sie WITH RECURSIVE verwenden

brauchen

Suchen Sie nach den Kindern und Enkelkindern, deren Name Zhang San ist. Die PID ist die übergeordnete ID des aktuellen Datensatzes. Beispielsweise ist die PID von Zhang Sans Sohn die ID von Zhang San und so weiter.

Bildbeschreibung hier einfügen

Einführung

Berechnen Sie das kumulierte Ergebnis von 1 bis 100.
WITH RECURSIVE t(n) AS ( //t ist unsere Ergebnistabelle, n ist das Feld, Sie können nur ein Feld angeben, um anzuzeigen, dass kein Feld angegeben ist VALUES (1) //Beginn der Rekursion, an diesem Punkt kann verstanden werden, dass das Feld n der t-Tabelle nur einen Datensatz 1 hat
 UNION ALLE
  WÄHLE n+1 AUS t, WO n < 100   
  /*Das Ergebnis ist hier 2. Zu diesem Zeitpunkt hat das Feld n der Tabelle t zwei Datensätze, 1 und 2.
  * 3
  * ...
  * 100
  */													  
)
SELECT sum(n) FROM t; //Summenfeld n

Vater betet für Sohn

WITH RECURSIVE temp AS ( // Nennen Sie die Ergebnistabelle temp
	SELECT * FROM resource r WHERE r.name = '张三' // Den Datensatz der übergeordneten ID abfragen. Zu diesem Zeitpunkt ist dieser Datensatz bereits in der temporären Tabelle vorhanden, wie in Abbildung 1-1 dargestellt
	UNION ALLE
	/*Beachten Sie zu diesem Zeitpunkt, dass das folgende SQL die letzten beiden Datensätze im erwarteten Ergebnis sind (mit Ausnahme des ersten).
	*Beachten Sie die Bedingung nach where: Wir verwenden die ID des einzigen Datensatzes in der temporären Tabelle, um die PID in der Ressourcentabelle zuzuordnen
	*Die zweite Datensatz-ID von temp wird nur dann abgeglichen, wenn der erste Datensatz von temp nicht mit der PID in der Ressourcentabelle übereinstimmt */
	WÄHLEN Sie r.* VON Ressource r,temp t, WO t.id = r.pid
)Wählen Sie * aus Temp 

Bildbeschreibung hier einfügen

Sohn ermittelt gegen Vater

MIT rekursiver Temperatur ALS (
	SELECT * FROM resource r WHERE r.name = 'Ressourcenname'
	UNION ALLE
	//Es ist bekannt, dass es sich um eine Teilmenge handelt, daher müssen wir die Ressourcen-ID über die temporäre PID abgleichen
	WÄHLEN Sie r.* VON Ressource r,temp t, WO t.pid = r.id
)Wählen Sie * aus Temp 

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels über die Methode zum rekursiven Abfragen von Parent-Child-Sets in MySql8. Weitere relevante Inhalte zum rekursiven Abfragen von Parent-Child-Sets in MySql8 finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung zur Sicherstellung der Konsistenz von MySQL-Ansichten (mit Prüfoption)
  • So beheben Sie den Fehler „Ein Windows-Dienst mit dem Namen MySQL ist bereits vorhanden.“ bei der Installation von MySQL
  • TIMESTAMP mit implizitem DEFAULT-Wert ist veralteter Fehler in MySQL 5.6
  • Lösung für MySQL-Fehler TIMESTAMP-Spalte mit CURRENT_TIMESTAMP
  • MySQL-Tipps: Lösung für das Problem, dass der Server beendet wird, ohne die PID-Datei zu aktualisieren
  • PHP SQL Injection mit MySQL
  • MySQL 8.0 MIT Abfragedetails

<<:  HTML ist die zentrale Grundlage für die Entwicklung von WEB-Standards

>>:  Vue Uniapp realisiert den Segmentierungseffekt

Artikel empfehlen

Detaillierte Erläuterung der Laderegeln der require-Methode in node.js

Laderegeln der Require-Methode Laden aus dem Cach...

So dekomprimieren Sie mehrere Dateien mit dem Befehl „unzip“ in Linux

Lösung für das Problem, dass in Linux kein Entpac...

Änderung und Abfrage von Python MySQL-Datenbanktabellen

Python stellt eine Verbindung zu MySQL her, um Da...

Beheben Sie den abnormalen Fehler beim Erstellen einer Vue-Umgebung mit Webpack

Inhaltsverzeichnis Konfigurieren Sie zuerst packa...

Detaillierte Erklärung der Schlüsselwörter und reservierten Wörter in MySQL 5.7

Vorwort Die Schlüsselwörter von MySQL und Oracle ...

Kennen Sie die seltsamen Dinge in Javascript?

Unsere erfahrenen Vorgänger haben zahllose Codes ...

So installieren Sie Docker und konfigurieren Alibaba Cloud Image Accelerator

Docker-Installation Über die Installation auf ein...

So lösen Sie das Problem der hohen Parallelität in der MySQL-Datenbank

Vorwort Wir alle wissen, dass Startups zunächst m...

Sechs wichtige Selektoren in CSS (merken Sie sie sich in drei Sekunden)

Von: https://blog.csdn.net/qq_44761243/article/de...

JavaScript-Implementierung des Verifizierungscode-Falls

In diesem Artikel wird der spezifische Code für J...