Tabellen mit durch Kommas getrennten Verknüpfungsfeldern verbinden
Bei der Datenbankverwaltung ist es häufig erforderlich, Tabellen basierend auf einem Feld zu verbinden, das mehrere Felder enthält durch Kommas getrennte Werte. Dies stellt eine Herausforderung dar, wenn Abfragen durchgeführt werden, die das Verknüpfungsfeld ausschließen und stattdessen passende Werte aus der zugehörigen Tabelle auswählen.
In diesem Szenario haben wir zwei Tabellen, Kategorien und Filme, wobei die Kategorienspalte in der Filmtabelle Folgendes enthält eine durch Kommas getrennte Liste von Kategorie-IDs. Unser Ziel ist es, eine Abfrage durchzuführen, die die Kategorien für jeden Film in einem Array-Format abruft.
Lösung
Eine Möglichkeit, dies zu erreichen, ist die Verwendung der JOIN-Operation mit eine Unterabfrage, die die Funktion find_in_set() verwendet. Die Funktion find_in_set() prüft, ob ein angegebener Wert in einer durch Kommas getrennten Zeichenfolge vorhanden ist.
Die folgende Abfrage zeigt, wie die Film- und Kategorietabellen basierend auf den durch Kommas getrennten Kategorie-IDs verknüpft 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
Erklärung
Ausgabe
Die Ausgabe der Abfrage ist eine Tabelle mit zwei Spalten: ID (die Film-ID) und Kategorien (ein Array von Kategorienamen). ). Die Ausgabe könnte beispielsweise so aussehen:
id | categories |
---|---|
1 | Comedy,Drama |
2 | Action,Drama |
4 | Other,Dance |
Das obige ist der detaillierte Inhalt vonWie verbinde ich Tabellen mit durch Kommas getrennten Verknüpfungsfeldern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!