Lösung zum Finden aller untergeordneten Zeilen für eine bestimmte übergeordnete Zeile in MySQL

Lösung zum Finden aller untergeordneten Zeilen für eine bestimmte übergeordnete Zeile in MySQL

Vorwort

Hinweis: Die Testdatenbankversion ist MySQL 8.0

Wenn Sie Tabellen erstellen und Daten unter dem Benutzer „Scott“ eingeben müssen, finden Sie weitere Informationen unter:

Scott erstellt Tabellen und gibt Daten ein SQL-Skript

1. Nachfrage

Suchen Sie alle Mitarbeiter, die direkt und indirekt für JONES arbeiten (d. h. Untergebene der Untergebenen von JONES).

Die Liste der unter JONES beschäftigten Mitarbeiter lautet wie folgt:

±------±-----+
| E-Mail | Stufe |
±------±-----+
| JONES | 1 |
| SCOTT | 2 |
| FORD | 2 |
| ADAMS | 3 |
| SCHMIED | 3 |
±------±-----+

2. Lösung

Die Möglichkeit, ganz nach oben oder unten in einer Zahl zu gelangen, ist sehr nützlich.

Für diese Lösung ist keine spezielle Formatierung erforderlich. Das Ziel besteht lediglich darin, alle dem Mitarbeiter JONES unterstellten Mitarbeiter zurückzuholen, wozu auch JONES selbst gehört.

Diese Art von Abfrage demonstriert die Nützlichkeit rekursiver SQL-Erweiterungen wie „Connect By“ von Oracle und der „Without“-Klausel von SQL Server/DB 2/MySQL 8.0.

mit rekursivem emp2(ename,empno,lvl) als
(
SELECT ename,empno,1 Ebene
 von emp 
 wobei ename = 'JONES'
Gewerkschaft ALLE
wähle e1.ename,e1.empno,lvl + 1
 von emp e1,emp2 e2
 wobei e1.mgr = e2.empno
)
wähle ename,lvl aus emp2

Testprotokoll:

mysql> mit rekursivem emp2(ename,empno,lvl) als
 -> (
 -> WÄHLEN Sie ename, empno, 1 Ebene
 -> von emp
 -> wobei ename = 'JONES'
 -> Vereinigung ALLE
 -> wähle e1.ename,e1.empno,lvl + 1
 -> von emp e1,emp2 e2
 -> wobei e1.mgr = e2.empno
 -> )
 -> wähle ename,lvl aus emp2;
+----------+------+
| E-Mail | Stufe |
+----------+------+
| JONES | 1 |
| SCOTT | 2 |
| FORD | 2 |
| ADAMS | 3 |
| SCHMIED | 3 |
+----------+------+
5 Zeilen im Satz (0,01 Sek.)

Zusammenfassen

Dies ist das Ende dieses Artikels zum Suchen aller untergeordneten Zeilen für eine bestimmte übergeordnete Zeile in MySQL. Weitere Informationen zum Suchen aller untergeordneten Zeilen für eine bestimmte übergeordnete Zeile in MySQL finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

<<:  Beispiel für die Installation und Bereitstellung von Docker unter Linux

>>:  Einige Tipps zur umfassenden Optimierung, um die Zugriffsgeschwindigkeit von Websites zu verbessern

Artikel empfehlen

Zusammenfassung der sieben grundlegenden XHTML-Codierungsregeln

1. Alle Tags müssen ein entsprechendes End-Tag hab...

Detaillierte Erklärung der neuen Erfahrung von Vite

Was ist Vite? (Es ist ein neues Spielzeug im Fron...

Einführung in JavaScript-Zahlen- und Mathematikobjekte

Inhaltsverzeichnis 1. Zahlen in JavaScript 2. Mat...

Details zur MySQL-Datenbankarchitektur

Inhaltsverzeichnis 1. MySQL-Architektur 2. Netzwe...

Installationsprozess der React Native-Umgebung

React-Native-Installationsprozess 1.npx react-nat...

Detaillierte Erläuterung der Kommentare zu gespeicherten MySQL-Prozeduren

Inhaltsverzeichnis 1. Gebrauchsanweisung 2. Vorbe...

Einführung in die MySQL-Entsperr- und Sperrtabelle

MySQL Lock-Übersicht Im Vergleich zu anderen Date...

So benennen Sie in Linux mehrere Dateien gleichzeitig um

Vorwort In unserer täglichen Arbeit müssen wir hä...

80 Zeilen Code zum Schreiben eines Webpack-Plugins und Veröffentlichen auf npm

1. Einleitung Ich habe vor Kurzem die Prinzipien ...

Vue verbessert die Seitenantwortgeschwindigkeit durch Lazy Loading

Inhaltsverzeichnis Überblick Was ist Lazy Loading...

So optimieren Sie den Logikbeurteilungscode in JavaScript

Vorwort Zu den logischen Urteilsaussagen, die wir...