„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 schließe ich mich einer von Kommas getrennten Spalte in einer Tabelle an?

Wie schließe ich mich einer von Kommas getrennten Spalte in einer Tabelle an?

Gepostet am 2025-05-01
Durchsuche:730

How to Join Tables with Comma-Separated Values in a Column?

tables mit comma-getrennten Werten

Datenbanknormalisierung ist für eine effiziente Datenverwaltung von entscheidender Bedeutung, aber manchmal erfordern Projekte möglicherweise Legacy-Daten in nicht-normalisierter Form. In diesem Artikel werden in einer bestimmten Spalte eine Technik zum Beitritt zu zwei Tabellen mit von Kommas getrennten Werten untersucht. ID

forDepts: Comma-separated department IDs

    Positions Table:
  • id: Position ID
    • name: Position name
  • Our goal is to join these Tabellen Tabellen und assoziieren Sie die Fredepts-Spalte mit Werten aus der Positionstabelle, erstellen eine neue Spalte mit von Kommas getrennten Positionsnamen.
  • Lösung unter Verwendung von concat_ws:
    • n.nid, Concat_ws (',', P.Name) als Abteilungsname Aus Notizen n Verbinden Sie Positionen p Auf n.fordepts = p.id
    • wird dieser Ansatz jedoch nur die erste Übereinstimmung für jede Abteilungs -ID abgerufen, nicht alle übereinstimmenden Abteilungen.
Lösung mit find_in_set:

A.Nid, A.NID, A.NID, A.NID, Group_Concat (B.Name Order von B.Id) als Abteilungsname Aus Notizen a Innere Join -Positionen b Auf find_in_set (b.id, a.fordepts)> 0 Gruppe von A.Nid Die Funktion find_in_set prüft, ob in einer von Comma getrennten Zeichenfolge ein Wert vorhanden ist. Indem wir es in der Join -Bedingung verwenden, stellen wir sicher, dass alle Übereinstimmungspositionen enthalten sind. Die Gruppe Group_Concat verkettet die abgerufenen Positionsnamen, die von Commas getrennt sind.

SELECT n.nid,
       CONCAT_WS(', ', p.name) AS DepartmentName
FROM   Notes n
JOIN   Positions p
       ON n.forDepts = p.id
PHP -Code -Integration:

Der angegebene Php -Code kann geändert werden, um die erweiterte Abteilungsname -Spalte abzurufen, indem die Abfragebeding in der MySQL_Query -Anweisung mit der obigen Lösung abgerufen wird. Auf diese Weise kann der Code die von Kommas getrennten Positionsnamen korrekt exportieren.

Hinweis:
SELECT n.nid,
       CONCAT_WS(', ', p.name) AS DepartmentName
FROM   Notes n
JOIN   Positions p
       ON n.forDepts = p.id
Während es ideal ist, Datenbanken zu normalisieren, ist manchmal nicht vergleichbare Daten erforderlich. Die in diesem Artikel diskutierten Techniken bieten eine Lösung, um Tabellen effizient zu verbinden und in solchen Szenarien getrennte Werte zu aggregieren.

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