vic: max(date) über mehrere Tabellen

Beitrag lesen

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