
Zitat von
toni_83
Soweit so gut. Nur wie müsste die Abfrage lauten, damit mein Ergebnis in etwa so aussieht:
Kundennummer, Vorname, Nachname, elektronische Adresse 1,
Allerdings erhalte ich die Daten so natürliche mehrzeilig, was ich nicht möchte.
Kann mir jemand helfen?
Danke
Toni
left outer join Tabelle 2
Du mußt die Daten aggregieren, so z.B.:
Code:
test=*# select * from kunden;
id | name
----+------
1 | ich
2 | du
(2 Zeilen)
Zeit: 0,281 ms
test=*# select * from kunden2;
id | email
----+--------
1 | email1
1 | email2
1 | email3
2 | email5
2 | email6
(5 Zeilen)
test=# CREATE FUNCTION comma_aggregate(text,text) RETURNS text AS ' SELECT CASE WHEN $1 <> '''' THEN $1 || '', '' || $2 ELSE $2 END; ' LANGUAGE sql IMMUTABLE STRICT; CREATE AGGREGATE comma (basetype=text, sfunc=comma_aggregate, stype=text, initcond='' );
CREATE FUNCTION
Zeit: 28,129 ms
CREATE AGGREGATE
Zeit: 20,901 ms
test=*# select k.id, k.name, comma(k2.email) from kunden k left join kunden2 as k2 on (k.id=k2.id) group by 1,2;
id | name | comma
----+------+------------------------
2 | du | email5, email6
1 | ich | email1, email2, email3
(2 Zeilen)
Andreas
Lesezeichen