Salut à tous !
Je bosse sur une requête pas très compliquée que voici :
Elle est censée me renvoyer la dernière version de chaque texte de la table text, contenu dans une page. Je dois passer par une table revision pour faire une jointure entre elles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT DISTINCT(page_title),max(old_id) as id,old_text FROM text,revision,page WHERE text.old_id = revision.rev_text_id AND revision.rev_page = page.page_id AND page.page_is_redirect = '0' AND (text.old_text LIKE '%test%' OR page_title LIKE '%test%') GROUP BY page_title,old_id;
Je récupère donc l'id le plus élevé, ce qui correspond à la version la plus récente, le titre de la page contenant mon texte (à l'arrivée je dois remonter autant de textes que de pages différentes) et le texte qui correspond à l'id le plus élevé.
Puis je groupe par page. Le nombre de résultat est correct, les id max aussi, mais le texte récupéré n'est pas celui de la ligne de l'id max
J'en viens donc à me dire que la clause group by fait un peu ce qu'elle veut, mais ça résout pas mon problème.
Quelqu'un peut m'aider ?
Merci !
Partager