„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie verbinde ich Tabellen mit durch Kommas getrennten Wertfeldern in SQL?

Wie verbinde ich Tabellen mit durch Kommas getrennten Wertfeldern in SQL?

Veröffentlicht am 16.11.2024
Durchsuche:372

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

Abfragen mehrerer Join-Felder mit durch Kommas getrennten Werten

In SQL beim Umgang mit Tabellen, die durch Kommas getrennte Listen (CSVs) enthalten In ihren Fachgebieten kann es eine Herausforderung sein, Verknüpfungen effektiv durchzuführen. In diesem Artikel wird ein bestimmtes Szenario untersucht, in dem die Kategorienspalte in einer Filmtabelle mehrere Kategorie-IDs enthält und das Ziel darin besteht, diese vollständig auszuschließen und gleichzeitig die entsprechenden Kategorienamen aus einer Kategorientabelle abzurufen.

Die folgenden Tabellen veranschaulichen das Szenario :

Table categories:
-id-       -name-
1          Action
2          Comedy
4          Drama
5          Dance

Table movies:
-id-       -categories-
1          2,4
2          1,4
4          3,5

Um den gewünschten Join durchzuführen, können wir die Funktion find_in_set() in Verbindung mit einer Operation group_concat() verwenden. Hier ist die Abfrage:

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

Abfrageerklärung:

  • find_in_set() prüft, ob ein angegebener Teilstring innerhalb eines Strings vorhanden ist, in diesem Fall, ob eine Kategorie-ID aus dem Die Kategorientabelle ist in der CSV-Datei der Kategorienspalte in der Filmtabelle vorhanden.
  • Die Join-Klausel verknüpft die beiden Tabellen basierend auf der find_in_set()-Bedingung.
  • group_concat() verkettet alle übereinstimmenden Kategorien Namen für jede Film-ID in einer einzigen Zeichenfolge.
  • Die Group-by-Klausel stellt sicher, dass die Ergebnisse nach Film-ID gruppiert werden, was eine saubere und organisierte Ausgabe liefert.

Die resultierende Ausgabe wird angezeigt die Film-IDs zusammen mit den entsprechenden Kategorienamen in einem Array-Format. Dies ermöglicht einen einfachen Zugriff auf die relevanten Kategorien, ohne dass die CSV-Datei in der Filmtabelle dekodiert werden muss.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3