Idéalement, vous voudriez que tout soit dans la même table avec quelque chose dans votre requête pour obtenir la bonne version, mais vous devez faire attention à la manière dont vous procédez, car une requête inefficace mettra une charge supplémentaire sur votre serveur. Si normalement vous sélectionniez un seul élément comme celui-ci :
SELECT * FROM your_table WHERE id = 42
Cela deviendrait alors :
SELECT * FROM your_table
WHERE id = 42
AND date < '2010-10-12 15:23:24'
ORDER BY date DESC
LIMIT 1
Index (id, e_timestamp)
pour lui permettre de fonctionner efficacement.
La sélection de plusieurs lignes dans une seule requête est plus délicate et nécessite une approche groupwise maximale, mais cela peut être fait.