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

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-13 02:49:02879Durchsuche

How to Join Tables With a Comma-Separated List of Join Fields?

Tabellen mit durch Kommas getrennten Listen-Join-Feldern verbinden

Bei der Arbeit mit Datenbanken kann es vorkommen, dass Sie zwei Tabellen basierend auf einem Feld mit mehreren Kommas verbinden müssen -getrennte Werte. In solchen Fällen reicht eine herkömmliche Verknüpfung möglicherweise nicht aus.

Betrachten Sie das bereitgestellte Beispiel, in dem Sie eine Tabelle mit Filmen mit einer Kategoriespalte haben, die durch Kommas getrennte IDs von Kategorien enthält. Das Ziel besteht darin, eine Abfrage durchzuführen, die die Kategoriespalte aus der Filmtabelle ausschließt und stattdessen die passenden Kategorienamen aus der Kategorientabelle auswählt und sie in einem Array zurückgibt.

Um dies zu erreichen, können Sie die folgende Abfrage verwenden :

SELECT m.id, GROUP_CONCAT(c.name) AS categories
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 prüft, ob ein Teilstring innerhalb eines Strings gefunden wird. Es gibt die Position der Teilzeichenfolge zurück, wenn sie gefunden wird, andernfalls 0. In diesem Fall wird geprüft, ob die Kategorie-ID aus der Kategorientabelle in der Kategorienspalte der Filmtabelle vorhanden ist.

Die Abfrage verwendet GROUP_CONCAT, um die Kategorienamen zu verketten, die von der JOIN-Operation für jede Film-ID zurückgegeben werden. Durch die Gruppierung nach m.id wird sichergestellt, dass Kategorien für jeden Film gruppiert werden.

Ausgabe:

Die Ausgabe der Abfrage sollte wie folgt aussehen:

| id | categories         |
|---:|-------------------|
| 1  | Comedy, Drama      |
| 2  | Action, Drama      |
| 4  | Other, Dance      |

Diese Technik verbindet effektiv die beiden Tabellen basierend auf der durch Kommas getrennten Liste der Kategorien, sodass Sie die Kategorienamen in einem Array-Format abrufen können.

Das obige ist der detaillierte Inhalt vonWie verbinde ich Tabellen mit einer durch Kommas getrennten Liste von 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