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