|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : août 2011 Messages : 7 ![]() |
Bonjour,
J'ai de petits problèmes pour réaliser deux requêtes SQL qui me semblaient basiques à priori. Voici deux tables : ARTICLE id author_id category_id isEnabled subject body createdAt updatedAt slug COMMENTAIRE id author_id topic_id body createdAt updatedAt J'aimerais effectuer sur ces tables deux fonctionnalités : Retourner les trois derniers articles commentés Retourner les trois articles les plus commentés ces 30 derniers jours Malheureusement, je me suis quelque peu emmêlé les pinceaux car je n'y arrive pas |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 641 ![]() |
Bonjour,
Sans connaitre votre SGBD c'est plus compliqué. Sinon regardez du côté des ordres LIMIT, FETCH FIRST etc... Pour la deuxieme requête il faudrai regarder du côté de la clause GROUP BY et la fonction COUNT(*) et reboucler avec votre 1ere requete. |
|
|
00
|
|
|
#3 |
|
Membre émérite
![]() Inscription : août 2008 Messages : 835 ![]() |
Bonjour,
La fonction de fenêtrage row_number() doit également vous permettre d'arriver à vos fins. Elle fait partie de la norme SQL il me semble, mais ça ne garantit pas que votre SGBD l'implémente. |
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : août 2011 Messages : 7 ![]() |
Si par "connaître votre SGBD", vous entendez le fournisseur, c'est MySQL. Mais la requête doit respecter la norme SQL en vigueur.
Si vous entendiez plutôt le contenu/schema de la DB, la voici : Code :
|
||
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 641 ![]() |
Donc,
avec MySql c'est bien du côté du "LIMIT" qu'il faut que vous regardiez. Et bien-sur de "ORDER BY". Ceci pour la 1ere requete. Pour la 2eme rien ne changera par rapport à ce que j'ai dit. Revenez avec vos jeux d'essais (requete) si ca ne marche pas. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com