Heim > Datenbank > MySQL-Tutorial > Hauptteil

So verknüpfen Sie Tabellen mit durch Kommas getrennten Verknüpfungsfeldern: Eine SQL-Lösung?

Linda Hamilton
Freigeben: 2024-11-21 06:34:16
Original
195 Leute haben es durchsucht

How to Join Tables with Comma-Separated Join Fields: A SQL Solution?

Verknüpfen von Tabellen mit durch Kommas getrennten Join-Feldern

Beim Integrieren von Daten aus mehreren Tabellen kann es erforderlich sein, Joins für Felder durchzuführen, die Folgendes enthalten durch Kommas getrennte Listen. Dies kann für herkömmliche Verbindungsmethoden eine Herausforderung darstellen. Stellen Sie sich das folgende Szenario vor:

Szenario:

Es gibt zwei Tabellen, Kategorien und Filme. Die Kategorientabelle enthält Kategorien mit eindeutigen IDs und Namen. Die Filmtabelle enthält eine Kategorienspalte, in der mehrere Kategorie-IDs als durch Kommas getrennte Liste gespeichert werden. Die Aufgabe besteht darin, diese Tabellen zu verbinden, die Kategorienspalte aus der Filmtabelle auszuschließen und stattdessen die passenden Kategorienamen aus der Kategorientabelle in einem Array auszuwählen.

Lösung:

Um diese Herausforderung zu meistern, kann eine Modifikation der Standard-Join-Syntax verwendet werden:

select
    m.id,
    group_concat(c.name)
from
    movies m
    join categories c on find_in_set(c.id, m.categories)
group by
    m.id
Nach dem Login kopieren

In dieser Abfrage wird die Funktion find_in_set() innerhalb des Joins verwendet Zustand. Diese Funktion prüft, ob die Kategorie-ID aus der Kategorientabelle in der durch Kommas getrennten Liste der Kategorie-IDs in der Filmtabelle vorhanden ist.

Die Funktion „group_concat()“ wird in der SELECT-Klausel verwendet, um alle übereinstimmenden Kategorienamen zu verketten in ein Array. Die „group by“-Klausel stellt sicher, dass die Daten nach der Film-ID gruppiert werden, wodurch für jeden Film eine Zeile mit den zugehörigen Kategorienamen entsteht.

Beispiel:

Betrachten Sie das Beispiel bereitgestellt in der Frage:

Tabelle Kategorien:

id name
1 Action
2 Comedy
4 Drama
5 Dance

Tabellenfilme:

id categories
1 2,4
2 1,4
4 3,5

Das Ausführen der geänderten Join-Abfrage würde die folgende Ausgabe erzeugen:

Tabellenausgabe:

id categories
1 Comedy,Drama
2 Action,Drama
4 Other,Dance

In diesem Ergebnis die Kategorienspalte aus der Filmtabelle wurde ausgeschlossen und die entsprechenden Kategorienamen aus der Kategorientabelle wurden in einem Array für jeden Film ausgewählt.

Das obige ist der detaillierte Inhalt vonSo verknüpfen Sie Tabellen mit durch Kommas getrennten Verknüpfungsfeldern: Eine SQL-Lösung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage