• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Werte aus Datensätzen mit gleicher Eigenschaft zu einen Wert zusammenführen

mt83

Neues Mitglied
Hallo,
ich bin nicht der fiteste bei SQL-Abfragen. Deswegen hier mein Problem.
Ich habe eine Tabelle wo jeder Datensatz eine Projektnummer enthält und weitere Eigenschaften besitzt. Die Projektnummer ist nicht der Schlüssel da in mehreren Datensätzen die gleiche Projektnummer mit anderen Eigenschaften auftauchen kann.

Hier ein Beispiel:

ID | ProjNr | Farbe
---------------------
5 | 24 | gelb
6 | 87 | pink
7 | 24 | grün


Nun benötige ich eine Abfrage welche die Eigenschaften der Datensätze mit gleicher Projektnummer zu einen Feld zusammenfasst. Das Feld soll die einzelnen Werte mit Komma trennen.
Das Ergebniss soll so aussehen:

ID | ProjNr | FarbMoeglichkeiten
---------------------------------
1 | 24 | gelb, grün
2 | 87 | pink
Wie kann ich sowas umsetzen?

Viele Grüße,
Micha
 
Das geht mit GROUP_CONCAT. Beachte aber, das die Standard-Maximallänge für so erzeugte Felder meist relativ kurz ist (1024 Zeichen). Die Alternative wäre es, eine entsprechende Zusammenstellung durch die serverseitige Programmiersprache vornehmen zu lassen.

- MySQL :: MySQL 5.0 Reference Manual :: 11.15.1 GROUP BY (Aggregate) Functions

Code:
SELECT
        `ProjNr`,
        GROUP_CONCAT(`Farbe` ORDER BY `Farbe` ASC SEPARATOR ', ') AS `FarbMoeglichkeiten`
FROM
        `tablename`
GROUP BY
        `ProjNr`
 
Zurück
Oben