2 Tabellen ein Datensatz

dwdrumsschalli

Neuer Benutzer
Beiträge
3
Hallo,

ok, der Topictitel ist nicht gerade selbsterklärend, sorry!

Ich versuch mal mein Problem zu beschreiben.

Ich habe 2 Tabellen z.B. Fahrt und Fahrtadressen
In Fahrt habe ich folgende Spalten... ID, Fahrgast
In Fahrtadressen habe ich diese Spalten... ID, Strasse, Ort, Adresstyp
Ein Eintrag in Fahrt sieht also so aus... 201, Hr. Fritz
Eintrag in Fahrtadresse... 201, Keplerstr., Aort, Abfahrt
201, Glückstr., Zort, Ziel

Mit einer Abfrage möchte ich jetzt dies vereinen und zwar damit diese Zeile rauskommt...
201, Hr. Fritz, Keplerstr., Aort, Glückstr., Zort

Bitte um Hilfe wie ich das abfragen kann, da stehts bei mir leider an.

Danke und freundliche Grüße,
Daniel
 
Werbung:
was ist denn Dein Ansatz?

Code:
test=*# create table fahrt (id int primary key, fahrgast text);
CREATE TABLE
test=*# create table fahrtadressen (fahrt_id int references fahrt, ort text);
CREATE TABLE
test=*# insert into fahrt values (201, 'Max');
INSERT 0 1
test=*# insert into fahrt values (202, 'Lisa');
INSERT 0 1
test=*# insert into fahrtadressen values (201, 'berlin');
INSERT 0 1
test=*# insert into fahrtadressen values (201, 'muenchen');
INSERT 0 1
test=*# insert into fahrtadressen values (202, 'kiel');
INSERT 0 1
test=*# select f.id, f.fahrgast, fa.ort from fahrt f left join fahrtadressen fa on f.id=fa.fahrt_id;
 id  | fahrgast |   ort   
-----+----------+----------
 201 | Max      | berlin
 201 | Max      | muenchen
 202 | Lisa     | kiel
(3 rows)
 
mhm, nur möchte ich eben die 2 datensätze mit id=201 in eine zeile bei der abfrage.
in der fahrtadresse sind ja die abfahrtadresse und die zieladresse 2 datensätze...bei der abfrage sollen diese aber in einer zeile sein...also jede id auch nur einen datensatz machen.

ansatz hab ich leider garkeinen... finde dazu nichts!
 
Werbung:
ahhh, das war aufgrund der nichtformatierung schlecht erkenntbar. Du suchst eine Aggregation:

Code:
test=*# select f.id, f.fahrgast, string_agg(fa.ort,', ') from fahrt f left join fahrtadressen fa on f.id=fa.fahrt_id group by 1,2;
 id  | fahrgast |    string_agg   
-----+----------+------------------
 201 | Max      | berlin, muenchen
 202 | Lisa     | kiel
(2 rows)

PostgreSQL, sollte in Ora ähnlich gehen.
 
Zurück
Oben