GROUP_CONCAT()

Programmierung

moin mal wieder...

Im Rahmen meines Datenbank Projektes hatte ich folgendes MySQL Problem:

  • ein Hotel-Gast kann mehrere Personen mitbringen.
  • in einer Übersicht über alle Gäste will ich alle Personen auflisten, die mit diesem Gast gekommen sind.

Das geht entweder in einer extra Tabelle oder zusammen gefasst in einer Zelle (Komma-separiert). Das erste würde meinem Vorsatz eine Übersicht zu zeigen nicht gerecht werden.

Mit CONCAT() kann man mehrere Spalten zu einer spalte zusammenfassen etwa:

SELECT CONCAT(vname, ' ', nname) AS name FROM person;

Das löst mein Problem noch nicht, da ich ja vertikal zusammenfassen möchte. Nach etwas suchen bin ich auf GROUP_CONCAT() gestoßen:

SELECT GROUP_CONCAT( nname SEPARATOR ', ') AS name FROM person;

Wenn man zusätzlich den Vornamen haben möchte:

SELECT GROUP_CONCAT( CONCAT(vname, ' ', nname) SEPARATOR ', ') AS name FROM person;

Dann kommt so etwas wie "Karl Müller, Hein Blöd, Max Mustermann" heraus.

Das kann man dann in ein SQL Statement einfügen

Kommentare (0)
Kommentar schreiben
Ihre Kontaktdetails:
Kommentare:
[b] [i] [u] [url] [quote] [code] [img]   
:D:angry::angry-red::evil::idea::love::x:no-comments::ooo::pirate::?::(
:sleep::););)):0
Security
Bitte geben Sie den Anti-Spam-Code aus diesem Bild ein.