Heim >Datenbank >MySQL-Tutorial >Wie verbinde ich Tabellen mit durch Kommas getrennten Verknüpfungsfeldern?

Wie verbinde ich Tabellen mit durch Kommas getrennten Verknüpfungsfeldern?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-10 22:23:02290Durchsuche

How to Join Tables with Comma-Separated Join Fields?

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

  • Die Funktion find_in_set() wird in der JOIN-Klausel verwendet, um die gemeinsamen Kategorien zwischen den Filmen und Kategorietabellen zu finden.
  • Die Funktion group_concat() wird verwendet, um die ausgewählten Kategorienamen für jeden Film in einer einzigen Zeichenfolge zu verketten.
  • Die Klausel „group by“ gruppiert die Ergebnisse nach der Film-ID, um sicherzustellen, dass jeder Film über ein eigenes Array von verfügt Kategorien.

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!

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