J'ai deux tablesgauche Rejoignez au plus récent enregistrement
Jeux et Scores:
jeux a un ID de clé primaire
scores a game_id qui fait référence games.id et créé sur entre autres domaines.
Je tente d'adapter le deuxième exemple dans la réponse acceptée de ce question pour répondre à mes besoins.
SELECT g.*,
s.*
FROM GAMES g
LEFT JOIN SCORES s ON s.game_id = g.id
JOIN (SELECT n.game_id,
MAX(n.created_on) AS max_score_date
FROM SCORES n
GROUP BY n.game_id) y ON y.game_id = s.game_id
AND y.max_score_date = s.created_on
il fonctionne presque, il obtient l'entrée la plus récente dans la table de score pour chaque jeu. Cependant, il ne renvoie que les jeux qui ont une entrée correspondante dans la table de score. et j'en ai besoin pour retourner tous les jeux dans la table sans tenir compte de s'ils ont une entrée dans la table de score. En lisant la question précédemment citée, j'ai supposé que la jointure gauche accomplirait.
qui résout un problème, mais crée une autre. alors qu'il obtient tous les jeux sans tenir compte de l'existence d'un enregistrement correspondant dans la table de scores, il renvoie également tous les enregistrements de la table de scores plutôt que le dernier en fonction de l'horodatage created_on. – gsueagle2008