Heim > Datenbank > MySQL-Tutorial > Wie verbinde ich Tabellen mit durch Kommas getrennten Spalten?

Wie verbinde ich Tabellen mit durch Kommas getrennten Spalten?

Susan Sarandon
Freigeben: 2025-01-03 05:04:40
Original
621 Leute haben es durchsucht

How to Join Tables with Comma-Delimited Columns?

Durch Kommas getrennte Datenspalten verbinden

Um zwei Tabellen mit durch Kommas getrennten Datenspalten zu verbinden, sollten Sie die folgenden Ansätze in Betracht ziehen:

Normalisierung

Normalisieren Sie die Tabelle mit dem durch Kommas getrennte Werte, indem Sie eine separate Tabelle mit einer Spalte für jeden Wert erstellen. Dies vereinfacht die Abfrage und vermeidet komplexe Zeichenfolgenmanipulationen.

Erstellen Sie eine Teilungsfunktion

Erstellen Sie eine Teilungsfunktion, die die durch Kommas getrennte Zeichenfolge in einzelne Zeilen umwandelt. Dadurch können Sie Verknüpfungen für die Zeilen durchführen.

Verwenden Sie FOR XML PATH und STUFF

Verwenden Sie FOR XML PATH, um die Werte in einer durch Kommas getrennten Zeichenfolge und STUFF zu verketten um das führende Komma zu entfernen.

Direkt FOR XML anwenden PATH

Wenden Sie FOR XML PATH direkt auf die Daten an, um die gewünschte Ausgabe zu generieren.

Beispiele

Split-Funktion mit Verkettung

;with cte as
(
  select c.col1, t1.col2
  from t1
  inner join 
  (
    select t2.col1, i.items col2
    from t2
    cross apply dbo.split(t2.col2, ',') i
  ) c
    on t1.col1 = c.col2
) 
select distinct c.col1, 
  STUFF(
         (SELECT distinct ', ' + c1.col2
          FROM cte c1
          where c.col1 = c1.col1
          FOR XML PATH ('')), 1, 1, '') col2
from cte c
Nach dem Login kopieren

FÜR XML-PFAD und STUFF

select col1, 
(
  select ', '+t1.col2
  from t1
  where ','+t2.col2+',' like '%,'+cast(t1.col1 as varchar(10))+',%'
  for xml path(''), type
).value('substring(text()[1], 3)', 'varchar(max)') as col2
from t2;
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie verbinde ich Tabellen mit durch Kommas getrennten Spalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage