Je cherche à faire des jointures un peu spécial
Je commence par décrire une version simplifié de la structure de ma base
Une table user, avec un uid unique et différentes infos personnelles.
Une table cotisations avec une association uid & delta comme clé unique et l'année où il ont cotisé.
un petit exemple au cas où je suis pas clair
l'user avec l'uid = 9 à payer pour les années 2012, 2013 et 2014, il y aurait donc trois lignes
Code : Tout sélectionner
uid delta annee
9 0 2012
9 1 2013
9 2 2014Je cherche à faire 2 choses bien distinctes
1)
Je voudrais récupérer l'année de dernière cotisation de chaque membres
J'aurais bien vu quelque chose comme cela :
SELECT [les champs utiles]
FROM user
LEFT JOIN cotisation ON cotisation.uid = user.uid AND MAX(cotisation.annee)
WHERE ...
Mais cela ne fonctionne pas, tous ce que j'ai lu concernant l'utilisation de max est de l'utilisé dans la partie SELECT, mais cela m'empèche d'avoir une liste des utilisateurs avec les dernières années de cotisation. Y a t il une technique qui vous viendrai à l'esprit pour ce genre de requète ?2)
Je voudrais récupérer pour chaque user, une liste, tableaux ou autre (selon les possibilités) des années payées. Comment pourrais je faire sachant qu'il y a un nombre indéfini de ligne par user.
PS Je ne peux changer la structure de mes tables étant dans un CMS (Drupal avec Profile2 pour les connaisseurs)