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

jQuery-Plugin zur Implementierung des Dashboards

Das jQuery-Plug-In implementiert das Dashboard zu...

MySQL Serie 14 MySQL Hochverfügbarkeitsimplementierung

1. MHA Durch die Überwachung des Masterknotens ka...

Zusammenfassung zur Verwendung des MySQL-Autorisierungsbefehls „grant“

So verwenden Sie den MySQL-Autorisierungsbefehl „...

MySQL 5.7.18 Installations-Tutorial und Problemübersicht

MySQL 5.7.18 Installation und Problemübersicht. I...

So löschen Sie node_modules und installieren es neu

Inhaltsverzeichnis Schritt 1: Installieren Sie no...

Einführung in die Vue3 Composition API

Inhaltsverzeichnis Überblick Beispiel Warum wird ...

Beschreiben Sie kurz die Replikation der MySQL-Überwachungsgruppe

Originaltext: https://dev.mysql.com/doc/refman/8....

Vue-Routing zum Implementieren der Login-Abfangung

Inhaltsverzeichnis 1. Übersicht 2. Routing Naviga...

Implementierung eines einfachen Whack-a-Mole-Spiels in JavaScript

In diesem Artikel finden Sie den spezifischen Cod...