Beispielanalyse der Verwendung von GROUP_CONCAT in MySQL

Beispielanalyse der Verwendung von GROUP_CONCAT in MySQL

Dieser Artikel beschreibt anhand eines Beispiels die Verwendung von GROUP_CONCAT in MySQL. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

Nun gibt es drei Tabellen mit folgender Struktur:

Cate-Tabelle:

TABELLE ERSTELLEN `cate` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT KOMMENTAR 'id',
 `name` char(20) DEFAULT '' COMMENT 'Kategoriename',
 PRIMÄRSCHLÜSSEL (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='Artikelkategorientabelle';

Artikeltabelle:

CREATE TABLE `Artikel` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT KOMMENTAR 'id',
 `Titel` varchar(50) DEFAULT '',
 `cate_id` int(11) NOT NULL DEFAULT '0' COMMENT 'Kategorie-ID',
 PRIMÄRSCHLÜSSEL (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='Artikeltabelle';

article_extend-Tabelle:

CREATE TABLE `article_extend` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `article_id` int(10) unsigned DEFAULT '0' COMMENT 'Artikel-ID',
 `name` varchar(255) DEFAULT '' COMMENT 'Audio, Bilder usw.',
 PRIMÄRSCHLÜSSEL (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='Anhangstabelle';

Die Daten in den drei Tabellen sind wie folgt:

Cate-Tabelle:

Artikeltabelle:

article_extend-Tabelle:

Hier kommt das Problem. Führen Sie nun eine Abfrage über die Tabellenverbindung durch, um die Artikeldaten mit der Artikel-ID 1 abzufragen und den Artikeltitel, die Artikelkategorie und den Artikelnamen anzuzeigen.

WÄHLEN
	a.id ALS Hilfe,
	a.title ALS atitle,
	c. NAME AS cname,
	ae.NAME AS aname
AUS
	Artikel AS ein
LEFT JOIN cate AS c ON a.cate_id = c.id
LEFT JOIN Artikel_erweitern AS ae ON a.id = ae.Artikel_id
WO
	eine ID = 1;

Die Ergebnisse sind wie folgt, es erscheinen zwei Datenteile:

Jetzt möchte ich nur ein Ergebnis, ein Namensfeld, zusammenführen. Wie geht das?

Dies ist nur mit GROUP_CONCAT möglich:

WÄHLEN
	a.id ALS Hilfe,
	a.title ALS atitle,
	c. NAME AS cname,
	GROUP_CONCAT(ae.NAME SEPARATOR '-') AS aname
AUS
	Artikel AS ein
LEFT JOIN cate AS c ON a.cate_id = c.id
LEFT JOIN Artikel_erweitern AS ae ON a.id = ae.Artikel_id
WO
	eine.id = 1;

Die Ergebnisse sind wie folgt:

Nun wollen wir nicht nach Artikel-ID einzeln suchen, sondern alle abrufen. Aber wie geht das, wenn mehrere Artikelnamen zusammengeführt werden müssen?

WÄHLEN
	a.id ALS Hilfe,
	a.title ALS atitle,
	c. NAME AS cname,
	ae.allname
AUS
	Artikel AS ein
LINKS VERBINDEN (
	WÄHLEN
		ae.Artikel-ID,
		GROUP_CONCAT(ae.NAME) AS alle Namen
	AUS
		article_extend AS ae
	GRUPPELN NACH
		ae.Artikel-ID
) AS ae ON a.id = ae.artikel_id
LINKS JOIN cate AS c ON a.cate_id = c.id;

Die Ergebnisse sind wie folgt:

Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „Zusammenfassung der allgemeinen MySQL-Funktionen“, „MySQL-Protokolloperationskenntnisse“, „Zusammenfassung der MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“ und „Zusammenfassung der MySQL-Datenbanksperrenkenntnisse“.

Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist.

Das könnte Sie auch interessieren:
  • Zeichenfolgen in Python 3 (einfache Anführungszeichen, doppelte Anführungszeichen, dreifache Anführungszeichen) und Operationen zwischen Zeichenfolgen und Zahlen
  • So ändern Sie die Längenbeschränkung von group_concat in MySQL
  • Probleme bei der Verwendung mehrerer einfacher und dreifacher Anführungszeichen in MySQL concat

<<:  Lösung für vergessenes Linux MySQL-Root-Passwort

>>:  Ausführliches Tutorial zur Installation von Deepin in VMware15 (Bild und Text)

Artikel empfehlen

SQL-Implementierung von LeetCode (177. N-höchstes Gehalt)

[LeetCode] 177.N-höchstes Gehalt Schreiben Sie ei...

MySQL-Export ganzer oder einzelner Tabellendaten

Exportieren einer einzelnen Tabelle mysqldump -u ...

Details zum Überschreiben von Prototypmethoden in JavaScript-Instanzobjekten

Inhaltsverzeichnis In JavaScript können wir norma...

So richten Sie domänenübergreifenden Zugriff in IIS web.config ein

Anforderung: Die Seite muss ein Bild anzeigen, ab...

Detaillierte Erklärung zur Verwendung von ES6 Promise

Inhaltsverzeichnis Was ist ein Versprechen? Verwe...

CocosCreator Skelettanimation Drachenknochen

CocosCreator Version 2.3.4 Drachenknochenanimatio...

Installieren Sie MySQL 5.7.18 mit dem RPM-Paket unter CentOS 7

Ich habe kürzlich MySQL verwendet. Im Artikel „My...

Design-Referenz: Erfolgsbeispiel für die Erstellung einer WordPress-Website

Jede dieser 16 Sites ist eine sorgfältige Lektüre ...

Detaillierte Erklärung dieser Referenz in React

Inhaltsverzeichnis Ursache: durchlaufen: 1. Konst...

MySQL-Zeittypauswahl

Inhaltsverzeichnis DATETIME ZEITSTEMPEL Wie man w...

Einige wunderbare Verwendungsmöglichkeiten von URL-Objekten in JavaScript

Inhaltsverzeichnis Vorwort Parameter analysieren ...

Eine kurze Diskussion über den VUE Uni-App-Lebenszyklus

Inhaltsverzeichnis 1. Anwendungslebenszyklus 2. S...

Die Organisation W3C gibt Stilempfehlungen für HTML4

Dies ist die Stilempfehlung der W3C-Organisation f...

Implementierung des React Page Turner (inkl. Front- und Backend)

Inhaltsverzeichnis Frontend Entwerfen und schreib...