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

WeChat-Applet implementiert SMS-Login in Aktion

Inhaltsverzeichnis 1. Vorschau der Schnittstellen...

Grafisches Tutorial zum Herunterladen und Installieren von MySQL 5.7 und höher

1. Herunterladen 1. Download-Adresse der offiziel...

Sehen Sie sich den Befehl zum Ändern der MySQL-Tabellenstruktur an

Kurzbeschreibung Der Editor hat häufig Probleme m...

Analyse des Hintergrundauthentifizierungsprozesses von Vue-Elementen

Vorwort: Kürzlich stieß ich in meinem Projekt auf...

Detaillierte Erklärung der JS-Ereignisdelegation

1. Jede Funktion ist ein Objekt und belegt Speich...

Website-Homepage-Design im Illustrationsstil Neuer Trend im Website-Design

Sie können sehen, dass ihre visuellen Effekte sehr...

So füllen Sie Elemente in Spalten im CSS-Rasterlayout

Angenommen, wir haben n Elemente und müssen diese...

Verständnis und Beispielcode des Vue-Standardslots

Inhaltsverzeichnis Was ist ein Slot Grundlegendes...

JavaScript implementiert schnell Kalendereffekte

In diesem Artikelbeispiel wird der spezifische Ja...

So verwenden Sie vue3 zum Erstellen einer Materialbibliothek

Inhaltsverzeichnis Warum brauchen wir eine Materi...

Detaillierte Schritte zur Installation eines Hadoop-Clusters unter Linux

Inhaltsverzeichnis 1. Erstellen Sie ein Hadoop-Ve...

MySQL-Abfrage gibt an, dass das Feld keine Zahl und kein Komma SQL ist

Grundlegende SQL-Anweisungen MySQL-Abfrageanweisu...

Probleme mit Join-Abfragen und Unterabfragen in MySQL

Inhaltsverzeichnis Grundlegende Syntax für Multi-...