Schlumpf: Satz mit kleinstem Datum und weiteren Feldern

Beitrag lesen

Hallo,

bei der Buchung von Hotelzimmern möchte ich pro Zimmer die nächste Buchung finden und den Namen des Gastes dazu. Vereinfacht:

*buchungen*
id tag        zi_nr adr_id
-- ---------- ----- ------
 1 2010-10-01     1     13
 2 2010-10-15     5      2
10 2010-09-28     1      5
 1 2010-10-15     1      5
 1 2010-09-15     5      2

*adressen*
id name
-- -----------
 2 Müller
 5 Schröder
13 Meisel

*ausgabe*
tag        zi_nr name
---------- ----- ------------
2010-09-28     1 Schröder
2010-09-15     5 Müller

Wenn ich nach zi_nr gruppiere und den kleinsten tag möchte, verliere ich ja normalerweise die adr_id. Ein kleiner Trick:

SELECT
 zi_nr
,MIN( CONCAT( tag, adr_id ) ) tag_adr
FROM adressen
GROUP BY zi_nr
ORDER BY tag_adr

So, wie kommt jetzt der Name aus der anderen Tabelle dazu?

Pfiffig wäre ja, mit JOIN die adressen dazuzubinden und dann diesen:

MIN( CONCAT( tag, adr_id, name ) ) tag_adr

aber name aus der anderen Tabelle kann mit CONCAT offenbar nicht hinzugefügt werden. Irgendwie steh ich auf dem Schlauch, kann doch nicht so schwer sein.

MfG Schlumpf