suchen
HeimDatenbankMySQL-TutorialWie verbinde ich Tabellen mit durch Kommas getrennten Werten mithilfe von SQL?

How to Join Tables with Comma-Separated Values Using SQL?

Tabellen mit durch Kommas getrennten Werten verbinden: Eine vollständige Anleitung

Datenbanktabellen enthalten häufig durch Kommas getrennte Werte in bestimmten Spalten. Dies stellt beim Abfragen der Daten eine Herausforderung dar, da jeder Wert der entsprechenden Zeile zugeordnet werden muss. Ein häufiges Szenario ist das Verbinden zweier Tabellen, bei denen eine Spalte durch Kommas getrennte Werte enthält, die auf die andere Tabelle verweisen.

Betrachten Sie das folgende Beispiel:

Notizentabelle

nid forDepts
1 1,2,4
2 4,5

Positionstabelle

id name
1 Executive
2 Corp Admin
3 Sales
4 Art
5 Marketing

Das Ziel ist Ordnen Sie die Spalte „forDepts“ in der Tabelle „Notizen“ den entsprechenden Abteilungsnamen aus der Tabelle „Positionen“ zu. Die gewünschte Ausgabe sollte sein:

nid DepartmentName
1 Executive, Corp Admin, Art
2 Art, Marketing

Ohne Änderung der Datenbankstruktur kann dies durch eine Kombination von SQL-Funktionen erreicht werden.

Mit FIND_IN_SET und GROUP_CONCAT

Eine Kombination der Funktionen FIND_IN_SET und GROUP_CONCAT kann verwendet werden, um die Abteilungsnamen für jede zu extrahieren und zusammenzufassen 'forDepts'-Wert:

SELECT  a.nid,
        GROUP_CONCAT(b.name ORDER BY b.id) DepartmentName
FROM    Notes a
        INNER JOIN Positions b
            ON FIND_IN_SET(b.id, a.forDepts) > 0
GROUP   BY a.nid

So funktioniert es

  • Die Funktion FIND_IN_SET prüft, ob ein angegebener Wert in einer durch Kommas getrennten Zeichenfolge vorhanden ist. In diesem Fall wird damit ermittelt, ob der Wert „forDepts“ in der Tabelle „Notizen“ die ID einer Abteilung in der Tabelle „Positionen“ enthält.
  • Die INNER JOIN-Klausel gleicht Zeilen aus den Tabellen „Notizen“ und „Positionen“ ab, in denen die Die Bedingung FIND_IN_SET ist wahr.
  • Die Funktion GROUP_CONCAT aggregiert die übereinstimmenden Abteilungsnamen für jede „NID“ in der Notes-Tabelle. Die ORDER BY-Klausel stellt sicher, dass die Namen in aufsteigender Reihenfolge nach ihrer ID sortiert werden.

Ergebnis

Die Ausgabe der Abfrage wäre die gewünschte Tabelle wobei die Spalte „nid“ mit dem entsprechenden durch Kommas getrennten „DepartmentName“ verbunden ist. Spalte.

Fazit

Durch die Nutzung der Funktionen FIND_IN_SET und GROUP_CONCAT können wir effektiv zwei Tabellen mit durch Kommas getrennten Werten verbinden, wodurch wir Daten tabellenübergreifend extrahieren und aggregieren können , auch wenn die Datenbankstruktur nicht normalisiert ist. Diese Technik erweist sich besonders beim Exportieren von Daten in andere Anwendungen wie Excel.

Das obige ist der detaillierte Inhalt vonWie verbinde ich Tabellen mit durch Kommas getrennten Werten mithilfe von SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wie lasse ich eine vorhandene Ansicht in MySQL fallen oder ändern?Wie lasse ich eine vorhandene Ansicht in MySQL fallen oder ändern?May 16, 2025 am 12:11 AM

TodropaviewInmysql, verwenden Sie "dropviewifexistsView_name;" und tomodifyAview, verwenden Sie "creetorReplaceViewView_nameasSelect ...". WhendroppingAView, AXIZENDENDEPENTENDENSANDUSUSE "SHOWREATEVIEWVIEW_NAME;" "

MySQL -Ansichten: Welche Designmuster kann ich damit verwenden?MySQL -Ansichten: Welche Designmuster kann ich damit verwenden?May 16, 2025 am 12:10 AM

MySQLViewScaneffectivItilizedEntatternSliKeadapter, Dekorateur, Factory undobserver.1) adapterPatternAdaptsdatafromDifferentTableStoaunifiedView.2) DekoratorpatternHancesDataWithokulediel.3) FactoryPatherncreat.ProduculedFeld.3) FactoryPathertoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoryPectoration

Was sind die Vorteile der Verwendung von Ansichten in MySQL?Was sind die Vorteile der Verwendung von Ansichten in MySQL?May 16, 2025 am 12:09 AM

ViewSinMysqLarbenicialforSimplifyTyComplexQueries, Verbesserung der Sicherheit, Sicherstellung von Dataconsistenz und optimizierterformance.1) SimplifyComplexQueriesbyCapscapsThemintorusableViewViews.2) ViewSenhiteCurityByControllingDataAccess.3) TheenedatacocurityBycaprollingDataAccess.3) TheenedatacocurityBycaprollingDataAccess.3) TheenedatacocurityBycaperingDataAccess.3) TheenedatacocurityBycaperingDataAccess.3) TheenedatacocurityByCaperingDataAccess.3) TheenedatacocourityByCaprollingDataAccess.3) Theensedataco

Wie kann ich eine einfache Ansicht in MySQL erstellen?Wie kann ich eine einfache Ansicht in MySQL erstellen?May 16, 2025 am 12:08 AM

ToCreateAsimpleviewInmysql, UsethecreateviewStatement.1) definessetheviewWithCreateView_nameas.2)

MySQL Erstellen Sie Benutzeranweisung: Beispiele und gemeinsame FehlerMySQL Erstellen Sie Benutzeranweisung: Beispiele und gemeinsame FehlerMay 16, 2025 am 12:04 AM

Tocreateusersinmysql, useTheCecreateuserStatement.1) ForAlocalUser: CreateUser'LocalUser '@' localhost'ididentifiedBy'SecurePassword ';

Was sind die Grenzen der Verwendung von Ansichten in MySQL?Was sind die Grenzen der Verwendung von Ansichten in MySQL?May 14, 2025 am 12:10 AM

MySQLViewShavelimitations: 1) Sie sind supportallsqloperationen, restriktedatamanipulation ThroughviewswithjoinSuBqueries.2) Sie können sich angesehen, insbesondere mit der kompetenten Formata -Ansichten, die docrexQuqueriesorlargedatasets angezeigt werden

Sicherung Ihrer MySQL -Datenbank: Hinzufügen von Benutzern und Gewährung von BerechtigungenSicherung Ihrer MySQL -Datenbank: Hinzufügen von Benutzern und Gewährung von BerechtigungenMay 14, 2025 am 12:09 AM

OrteSermanagementinmysqlisicialforenHancingSecurityAnsuringEffizienceDatabaseoperation.1) Usecreateutertoaddusers, spezifizierende Connections mit 'localhost'or@'%'.

Welche Faktoren beeinflussen die Anzahl der Trigger, die ich in MySQL verwenden kann?Welche Faktoren beeinflussen die Anzahl der Trigger, die ich in MySQL verwenden kann?May 14, 2025 am 12:08 AM

Mysqldoes nicht imposeahardlimitontriggers, aber praktische Faktorendeterminetheireffectiveuse: 1) serverconfigurationImpactstriggermanagement;

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Nordhold: Fusionssystem, erklärt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung