Bonjour,
Je sollicite votre aide pour une requête mysql que je dois faire.
J'ai une table article contenant une liste d'articles. Cette table contient un champs de référence, ref_theme, vers une table de theme. ref_theme = id_theme. La table article contient aussi un champs date_article qui est la date de publication de l'article. Il y a 4 thèmes différents.
Je voudrais récupérer les trois derniers articles pour chaque thème.
Alors en 4 requêtes, c'est très simple.
je voudrais savoir s'il est possible de faire ça en une seule requête.
J'ai bien essayé de faire des sous requêtes en faisant :
mais j'obtiens une multitude de ligne contenant les combinaisons entre tous les différents articles :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 SELECT t1.id_article, t2.id_article, [...] FROM (SELECT article.id_article FROM article, theme WHERE article.ref_theme = theme.id_theme AND theme.classement_theme = 1 ORDER BY article.date_article DESC LIMIT 0,3) t1, (SELECT article.id_article FROM article, theme WHERE article.ref_theme = theme.id_theme AND theme.classement_theme = 2 ORDER BY article.date_article DESC LIMIT 0,3) t2, [...]
Merci d'avance pour toute piste !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 id_article theme 1 n°1 | id_article theme 2 n°1 | [...] id_article theme 1 n°1 | id_article theme 2 n°2 | [...] id_article theme 1 n°1 | id_article theme 2 n°3 | [...] id_article theme 1 n°2 | id_article theme 2 n°1 | [...] etc...
Nico
Partager