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
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!