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:
|
<<: Lösung für vergessenes Linux MySQL-Root-Passwort
>>: Ausführliches Tutorial zur Installation von Deepin in VMware15 (Bild und Text)
Inhaltsverzeichnis Installieren Sie Tomcat Laden ...
Durch E-Mail-Marketing auf Genehmigungsbasis lass...
Inhaltsverzeichnis 1. Ziehen Sie das Redis-Image ...
Einführung in das Schlüsselwort void Zunächst ein...
Inhaltsverzeichnis Vor MySQL 5.6 Nach MySQL 5.6 Z...
Ich habe gehört, dass es eine Interviewfrage gibt...
Vorwort: Verwenden Sie die Debugleiste, um den Dok...
1. Bereiten Sie zunächst VS2019 und die MySQL-Dat...
Beispielverwendung Code kopieren Der Code lautet w...
Standardmäßig werden Prozesse im Container mit Ro...
Inhaltsverzeichnis Vorwort Prototypische Vererbun...
MySql 8.0 entsprechendes Treiberpaket passend Nac...
Pixel Auflösung Mit der Monitorauflösung ist eige...
Inhaltsverzeichnis 1. Der Unterschied zwischen Fu...
Vorwort Nach der Bereitstellung des Servers besuc...