MySQL-Beispiel für die Abfrage aller untergeordneten mehrstufigen Unterabteilungen basierend auf einer bestimmten Abteilungs-ID

MySQL-Beispiel für die Abfrage aller untergeordneten mehrstufigen Unterabteilungen basierend auf einer bestimmten Abteilungs-ID

Simulationstabellen und Datenskripte

Kopieren Sie die folgende SQL-Anweisung, um eine Tabelle namens sys_dept zu generieren und einige hierarchische Daten einzufügen. Kopieren und führen Sie sie einfach aus.

Tabelle löschen, wenn `sys_dept` vorhanden ist;
Tabelle „sys_dept“ erstellen (
 `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Abteilungsnummer',
 `p_id` int(11) DEFAULT NULL COMMENT 'Übergeordnete Abteilungsnummer',
 `title` varchar(255) DEFAULT NULL COMMENT 'Name der übergeordneten Abteilung',
 `is_open` int(11) DEFAULT NULL COMMENT 'Ob erweitert werden soll (0-erweitern, 1-nicht erweitern)',
 `Adresse` varchar(255) DEFAULT NULL COMMENT 'Abteilungsadresse',
 `create_time` datetime DEFAULT NULL COMMENT 'Erstellungszeit',
 `remark` varchar(255) DEFAULT NULL COMMENT 'Bemerkungen',
 PRIMÄRSCHLÜSSEL (`id`) MIT BTREE
)ENGINE=InnoDB STANDARD-CHARSET=utf8;


INSERT INTO sys_dept (p_id, Titel, ist_geöffnet, Adresse, Erstellungszeit, Bemerkung) WERTE 
(0, „Büro des Generaldirektors“, 1, „Shenzhen“, „10.04.2019 14:06:32.000“, „Big Boss“)
,(1,'Verkaufsabteilung',0,'Wuhan','2019-04-10 14:06:32.000','Programmierer-Verlierer')
,(1,'Operationsabteilung',0,'Wuhan','2019-04-10 14:06:32.000','Keine')
,(1,'Produktionsabteilung',0,'Wuhan','2019-04-10 14:06:32.000','Keine')
,(2,'Verkaufsabteilung 1',0,'Wuhan','2019-04-10 14:06:32.000','Verkaufsabteilung 1')
,(2,'Verkaufsabteilung 2',0,'Wuhan','2019-04-10 14:06:32.000','Verkaufsabteilung 2')
,(2,'Verkaufsabteilung 3',0,'Guangzhou','2019-04-10 14:06:32.000','Verkaufsabteilung 3')
,(2,'Verkaufsabteilung 4',0,'Guangzhou','2019-04-10 14:06:32.000','Verkaufsabteilung 4')
,(2,'Verkaufsabteilung 5',0,'Guangzhou','2019-04-10 14:06:32.000','Verkaufsabteilung 5')
,(3,'Operationsabteilung 1',0,'Wuhan','2019-04-10 14:06:32.000','Operationsabteilung 1')
,(3,'Operationsabteilung 2',0,'Wuhan','2019-04-10 14:06:32.000','Operationsabteilung 2')
,(3,'Operationsabteilung 3',0,'Wuhan','2019-04-10 14:06:32.000','Operationsabteilung 3')
,(3,'Operationsabteilung 4',0,'Wuhan','2019-04-10 14:06:32.000','Operationsabteilung 4')
,(3,'Operationsabteilung 5',0,'Wuhan','2019-04-10 14:06:32.000','Operationsabteilung 5')
,(4,'Produktionsabteilung 1',1,'Shenzhen','2019-11-23 09:50:23.000','Produktionsabteilung 1')
,(4,'Produktionsabteilung 2',1,'Shenzhen','2019-11-23 09:50:23.000','Produktionsabteilung 2')
,(4,'Produktionsabteilung 3',1,'Shenzhen','2019-11-23 09:50:23.000','Produktionsabteilung 3')
,(5,'Umsatz einer Gruppe',1,'Shenzhen','2019-11-23 09:50:23.000','Umsatz einer Gruppe')
,(5,'Verkaufsabteilung 1, Gruppe 2',1,'Shenzhen','2019-11-23 09:50:23.000','Verkaufsabteilung 1, Gruppe 2')
,(5,'Verkäufe von Einheit 1 und 3',1,'Shenzhen','2019-11-23 09:50:23.000','Verkäufe von Einheit 1 und 3')
,(6,'Verkaufsabteilung 2 Gruppe 1',1,'Shenzhen','2019-11-23 09:50:23.000','Verkaufsabteilung 2 Gruppe 1')
,(6,'Verkaufsabteilung 2 Gruppe 2',1,'Shenzhen','2019-11-23 09:50:23.000','Verkaufsabteilung 2 Gruppe 2')
,(17,'Produktionsabteilung 3 Gruppe 1',1,'Shenzhen','2019-11-23 09:50:23.000','Produktionsabteilung 3 Gruppe 1')
,(17,'Produktionsabteilung 3 Gruppe 2',1,'Shenzhen','2019-11-23 09:50:23.000','Produktionsabteilung 3 Gruppe 2')
,(17,'Produktionsabteilung 3 Gruppe 3',1,'Shenzhen','2019-11-23 09:50:23.000','Produktionsabteilung 3 Gruppe 3')
;

Abfrage aller Unterabteilungen nach Abteilungs-ID

wählen
 ID, Titel
aus
 (
 wählen
 t1.id,t1.titel,
 wenn(find_in_set(p_id, @pids) > 0,
 @pids := concat(@pids, ',', id),
 0) als Kind
 aus
 (
 wählen
  Ausweis,
  p_id,
  Titel
 aus
  ssmdemo.sys_dept t
 Bestellen bis
  p_id,
  Ich würde ) t1,
 (
  wähle @pids := 17) t2 ) t3
Wo
 istild != 0

In @pids := 17 ist 17 die abzufragende Abteilungs-ID.

Dies ist das Ende dieses Artikels über das Beispiel einer MySQL-Abfrage aller mehrschichtigen Unterabteilungen auf niedrigerer Ebene basierend auf einer bestimmten Abteilungs-ID. Weitere relevante MySQL-ID-Abfragen aller mehrschichtigen Unterabteilungen auf niedrigerer Ebene finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Der Unterschied sowie die Vor- und Nachteile des MySQL-Primärschlüssels UUID und des automatisch inkrementierten Primärschlüssels
  • Die unangemessenen MaxIdleConns von MySQL führen zu kurzen Verbindungen
  • Detaillierte Erläuterung von sieben Methoden zum Zurückgeben der Auto-Increment-ID nach dem Einfügen von Daten in MySQL
  • Detaillierte Schritte zur Verwendung von IDEA zum Konfigurieren von Tomcat und Herstellen einer Verbindung mit einer MySQL-Datenbank (JDBC)
  • MySQL-Datenbank GTID realisiert Master-Slave-Replikation (super praktisch)
  • Lösung für das Ausgehen der Auto-Increment-ID (Primärschlüssel) von MySQL
  • JDBC-Idee: MySQL importieren, um Java-JAR-Paket zu verbinden (Mac)
  • Detaillierte Analyse, warum MySQL die Verwendung von UUID oder Snowflake-ID als Primärschlüssel nicht empfiehlt
  • Wie implementiert MySQL ACID-Transaktionen?
  • Probleme und Lösungen für die Verbindung von IDEA mit MySQL
  • MySQL wählt den passenden Datentyp für die ID

<<:  Detaillierte Erklärung der HTML-Tabellen-Tags (für Anfänger geeignet)

>>:  JavaScript zum Erzielen eines Klickbild-Flip-Effekts

Artikel empfehlen

Neunundvierzig JavaScript-Tipps und Tricks

Inhaltsverzeichnis 1. Betrieb von js Integer 2. S...

Die Hauptidee zum dynamischen Festlegen von Routing-Berechtigungen in Vue

Ich habe zuvor einige dynamische Routing-Einstell...

So implementieren Sie einen einfachen HTML-Videoplayer

Dieser Artikel stellt die Methode zur Implementie...

Beispielcode zur Implementierung eines 3D-Bucheffekts mit CSS

Schauen wir uns zunächst ohne Umschweife die Rend...

Was tun, wenn Sie Ihr Linux/Mac MySQL-Passwort vergessen?

Was tun, wenn Sie Ihr Linux/Mac MySQL-Passwort ve...

So passen Sie mit CSS einen schöneren Link-Prompt-Effekt an

Vorschlag: Das möglichst häufige handschriftliche ...

HeidiSQL-Tool zum Exportieren und Importieren von MySQL-Daten

Um den Export und Import von Daten in SQL zu erle...

Remotedesktopverbindung zwischen Windows und Linux

Wenn es um eine Remotedesktopverbindung zu Linux ...

Einige gängige CSS-Layouts (Zusammenfassung)

Zusammenfassung In diesem Artikel werden die folg...