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

Ein tiefes Verständnis der spitzen Klammern in Bash (für Anfänger)

Vorwort Bash verfügt über viele wichtige integrie...

Detaillierte Erklärung der CSS-Stylesheets und des Formatlayouts

Stilvorlagen CSS (Cascading Style Sheets) wird zu...

Wissen zur Suchmaschinenoptimierung, auf das Sie beim Webdesign achten sollten

1. Linklayout der neuen Site-Startseite 1. Die Pos...

CSS zum Erzielen eines Animationseffekts der Tik Tok-Abonnementschaltfläche

Ich habe mir vor einiger Zeit Tik Tok angesehen u...

So wechseln Sie in Linux effizient zwischen Verzeichnissen

Wenn es um den Verzeichniswechsel unter Linux geh...

Erläuterung des HTML-Tabellenlayouts als Beispiel

Die Elemente in einem HTML-Dokument werden hinter...

So verwenden Sie Dayjs zum Berechnen gängiger Daten in Vue

Bei der Verwendung von Vue zur Entwicklung von Pr...

WeChat Mini-Programme werden global über die Uni-App geteilt

Bei der tatsächlichen Verwendung ist es häufig er...

XHTML-Tags sollten richtig verwendet werden

<br />In früheren Tutorials von 123WORDPRESS...

Grafisches Tutorial zur Installation und Konfiguration von CentOS 7

In diesem Artikel wird das ausführliche Installat...

Einführung und Verwendung der Angular-Pipeline PIPE

Vorwort PIPE, übersetzt als Pipeline. Angular Pip...

HTML+CSS zum Erreichen eines reaktionsfähigen Karten-Hover-Effekts

Inhaltsverzeichnis erreichen: Zusammenfassen: Daz...