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

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

Barbara Streisand
Barbara StreisandOriginal
2024-11-12 07:41:01336Durchsuche

How to Join Tables with Comma-Separated Join Fields in SQL?

Tabellen mit durch Kommas getrennten Verknüpfungsfeldern verbinden

Wenn Sie mit Tabellen arbeiten, die durch Kommas getrennte Listen enthalten, wird es schwierig, Verknüpfungen auf herkömmliche Weise durchzuführen Methoden. In diesem Fall stoßen wir auf zwei Tabellen, „Kategorien“ und „Filme“, wobei die Spalte „Kategorien“ in der Tabelle „Filme“ mehrere durch Kommas getrennte Kategorie-IDs enthält.

Um einen Join zu erreichen, der die abruft entsprechenden Kategorienamen anstelle der Roh-IDs in der Spalte „Kategorien“ können wir die folgende SQL-Abfrage nutzen:

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

Diese Abfrage verwendet die Funktion find_in_set(), um zu ermitteln, ob eine in der Spalte „Kategorien“ angegebene Kategorie-ID angegeben ist Die Tabelle „Kategorien“ existiert in der durch Kommas getrennten Liste, die im Feld „m.categories“ gespeichert ist. Durch iteratives Vergleichen jeder Kandidatenkategorie aus der Tabelle „Kategorien“ mit dem Wert „m.categories“ identifiziert die Abfrage übereinstimmende Kategorien.

Die Funktion „group_concat()“ wird dann verwendet, um die Namen der übereinstimmenden Kategorien in einem Array zusammenzufassen und verkettet sie in einem einzelnen Zeichenfolgenfeld für jede Zeile im Ergebnissatz. Schließlich gruppiert die Abfrage die Ergebnisse nach der Spalte „m.id“, um sicherzustellen, dass jede Film-ID nur einmal in der Ausgabe vorkommt.

Dadurch ersetzt diese Abfrage effizient die durch Kommas getrennten Kategorie-IDs in der „Filme“-Tabelle mit den entsprechenden Kategorienamen, wodurch effektiv eine Verknüpfungsoperation für Tabellen mit nicht-traditionellen Verknüpfungsfeldern durchgeführt wird.

Das obige ist der detaillierte Inhalt vonWie verbinde ich Tabellen mit durch Kommas getrennten Verknüpfungsfeldern in 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