Ergibt:
SELECT
A.id,
-- Du möchtest die Query nicht jeden Tag neu schreiben wollen
DATEDIFF([link:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_current-date@title=CURRENT_DATE(]), MAX(B1.date))
FROM
A
INNER JOIN
B AS B1 -- wir müssen zweimal auf B zugreifen, daher der Aliasname
ON
A.id = B1.id
-- Nun schränken wir die Datensätze ein
WHERE
B1.date = (
SELECT
MAX(B2.date)
FROM
B B2 -- um den inneren Zugriff vom äußeren unterscheiden zu
-- können,
WHERE
-- und wir das Maximaldatum zu jeder ID benötigen
-- Das ist die Korrelation.
B1.id = B2.id
)
>
Danke für den Tipp. Leider dauert das Statement ewig (bis jetzt ca 30 min), sprich es hat bis jetzt noch keine Daten ausgespuckt. :(
A hat 400 rows, B ca. 1,2 Mio rows. Indices sind drauf. Hm. Ich muss den select jetzt leider abbrechen, da gleich einige batchjobs anfangen. Ich versuch es morgen früh nochmal und geb feedback, ob da noch was kommt.
ciao,
vic