left join, aber wie?

left join, aber wie?

am 20.08.2007 12:11:44 von Stefan+Usenet

Ich habe da eine recht simple Abfrage der Art (das * soll mir hier
nur die Feldliste ersparen und steht real nicht da):

| SELECT * FROM a WHERE a.id_a IN (2,3,5,7,11,...)

Nun gibt es eine Tabelle b, die 1:n mit a verknuepft ist. In jeder
Reihe von b sind ein Zeitstempel, sowie ergaenzende Angaben dazu
vorhanden. Moechte ich nun fuer jeden Eintrag aus a auch noch den
aktuellsten Zeitstempel aus b haben (falls vorhanden), ist das
relativ einfach:

| SELECT a.*, MAX(b.Timestamp)
| FROM a
| LEFT JOIN b ON a.id_a=b.id_a
| GROUP BY a.id_a

Was aber tun, wenn ich dazu auch noch die Spalte b.Data im Ergebnis
haben moechte, und zwar von genau der Reihe, in der MAX(b.Timestamp)
enthalten ist?

Die Aufgabenstellung ist ja eigentlich nicht ungewoehnlich und sieht
auch nicht so schwierig aus. Vermutlich stehe ich einfach auf dem
Schlauch - geht so etwas noch ohne Subquery?

Servus,
Stefan

--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich

Schmierige Fragen erwartet der Bundestag: Stefan!
(Sloganizer)

Re: left join, aber wie?

am 20.08.2007 13:49:08 von Wolf Behrenhoff

Stefan Froehlich schrieb:
> Ich habe da eine recht simple Abfrage der Art (das * soll mir hier
> nur die Feldliste ersparen und steht real nicht da):
>
> | SELECT * FROM a WHERE a.id_a IN (2,3,5,7,11,...)
>
> Nun gibt es eine Tabelle b, die 1:n mit a verknuepft ist. In jeder
> Reihe von b sind ein Zeitstempel, sowie ergaenzende Angaben dazu
> vorhanden.
> Was aber tun, wenn ich dazu auch noch die Spalte b.Data im Ergebnis
> haben moechte, und zwar von genau der Reihe, in der MAX(b.Timestamp)
> enthalten ist?
>
> Die Aufgabenstellung ist ja eigentlich nicht ungewoehnlich und sieht
> auch nicht so schwierig aus. Vermutlich stehe ich einfach auf dem
> Schlauch - geht so etwas noch ohne Subquery?

Das erinnert mich stark an meine Frage vor ca. 2 Monaten (9.6.) :-)

Siehe Message-Id 466acd31$0$20290$9b4e6d93@newsspool3.arcor-online.net
und folgende...

Wolf

Re: left join, aber wie?

am 20.08.2007 14:13:07 von Stefan+Usenet

On Mon, 20 Aug 2007 13:49:08 +0200 Wolf Behrenhoff wrote:
> > Was aber tun, wenn ich dazu auch noch die Spalte b.Data im Ergebnis
> > haben moechte, und zwar von genau der Reihe, in der MAX(b.Timestamp)
> > enthalten ist?

> Das erinnert mich stark an meine Frage vor ca. 2 Monaten (9.6.) :-)

> Siehe Message-Id 466acd31$0$20290$9b4e6d93@newsspool3.arcor-online.net
> und folgende...

Cool, danke! Ich haette doch auch im Urlaub mitlesen sollen :-)

Servus,
Stefan

--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich

Betatschen im Alltag des Smogs - Stefan!
(Sloganizer)