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!