Ich habe als Ergebnis eines SELCT-Aufrufes, indem ich einige Tabellen mit einem LEFT JOIN zusammenfüge, im Ergebnis immer mehrere Zeilen, die sich in nur einem Feld unterscheiden.
Ich möchte diese nun zusammenfügen und in dem betroffenen Feld soll eine Komma-getrennt Auflistung der unterschiedlichen Inhalte stehen.
Leider sind meine SQL-Kenntnisse dafür noch nicht ausreichend. Hat jemand eine Idee?
test=# select * from master;
id | name
----+---------
1 | andreas
(1 row)
test=# select * from detail ;
id_master | telefon
-----------+----------
1 | Festnetz
1 | Handy
(2 rows)
test=# select m.id, m.name,array_to_string(array_agg(d.telefon),', ') from master m left join detail d on m.id=d.id_master group by m.id, m.name;
id | name | array_to_string
----+---------+-----------------
1 | andreas | Festnetz, Handy
(1 row)
array_agg gibt es seit 8.4 erst, aber Du fängst ja sicher mit einer aktuellen Version an, oder?