Hallo,
ich bin auf der Suche für folgendes Problem mit diesen Tabellen (auf das wesentliche vereinfacht):
t1: a (Primärschlüssel, int), b (varchar)
t2: id (Primärschlüssel, int), a (int; hier nicht eindeutig), d (datetime), c (varchar)
Jetzt will ich für alle a aus t1, bei denen b einen bestimmten Wert hat, jeweils den neuesten Eintrag aus t2 (nach der Spalte d).
Mein Ansatz war
SELECT t1.a, t2.d, t2.c FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE t1.b=„Wert“ AND ?
allerdings komme ich dort nicht weiter, da ich nicht weiss, wie ich den „neuesten“ Wert ausdrücke (der bei jedem Datensatz a anders ist).
Das Ganze ärgerlicherweise mit mySQL 4.0, also keine Subselects möglich, allerdings könnte man PHP-seitig ggfs. ein Ergebnis zwischenspeichern. Nur die verschachtelte Variante, also
SELECT a FROM t1 WHERE b=„Wert“
für jede Zeile SELECT d,c FROM t2 WHERE a=$a_von_außen ORDER BY d DESC LIMIT 1
will ich vermeiden.
Alexander