J'ai une base de données postgres avec une table d'utilisateur (userid, prénom, nom) et une table usermetadata (userid, code, contenu, datetime créé). Je stocke diverses informations sur chaque utilisateur dans la table usermetadata par code et conserve un historique complet. Ainsi, par exemple, un utilisateur (userid 15) a les métadonnées suivantes:joignant le dernier des différents tags usermetadata aux lignes utilisateur
15, 'QHS', '20', '2008-08-24 13:36:33.465567-04'
15, 'QHE', '8', '2008-08-24 12:07:08.660519-04'
15, 'QHS', '21', '2008-08-24 09:44:44.39354-04'
15, 'QHE', '10', '2008-08-24 08:47:57.672058-04'
Je dois chercher une liste de tous mes utilisateurs et la valeur la plus récente de chacun des différents codes usermetadata. Je l'ai fait par programme et c'était, bien sûr, lenteur. Le mieux que je pouvais trouver pour le faire en SQL était de rejoindre les sous-sélections, qui étaient aussi lentes et je devais en faire une pour chaque code.