|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : avril 2007 Messages : 34 ![]() |
Bonjour à tous, et merci d'accorder un peu de votre temps à mon problème.
Voilà, j'ai actuellement une requête qui marche parfaitement et qui fait ce que je lui demande ( j'extrais des topics d'un forum PHPBB pour les afficher sur une autre page ) : Code :
Jusque-là, aucun souci. Le problème étant que je voudrais sélectionner 10 topics du forum 4, 10 topics du forum 15 et 10 topics du forum 10 ( en clair 30 topics divisés sur 3 forums, soit 10 topics par forum). Evidemment, la solution bête et méchante et pas optimisée serait de faire 3 SELECT avec un WHERE : t.forum_id=numero du topic comme condition. Sauf que je me retrouverais avec 3 requêtes SQL, et je ne veux pas. Je voudrais pouvoir sélectionner les 10 derniers topics de chaque forum mais en une seule requête. J'ai regardé sur le forum, testé des UNIONS, essayé de voir avec des tables temporaires, mais au final je n'arrive à rien et je ne suis totalement perdu. Merci d'avance pour votre aide |
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Bonjour,
Inspire-toi de l'exemple présenté dans les sources MySQL : http://mysql.developpez.com/telechar...aque-categorie Ça devrait correspondre à ce que tu recherches.
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : avril 2007 Messages : 34 ![]() |
Merci, je regarde ça, je tente de comprendre et de créer un code, et je reviens
|
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
L'idée n'est pas de créer des catégories (qui sont un exemple dans le code source). Dans le cas présent, l'idée est de remplacer la notion de catégorie dans le requête du code source par la notion de forum dans ta requête.
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : avril 2007 Messages : 34 ![]() |
Ok je vois, c'est un peu plus clair. Je bosse dessus là
|
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : avril 2007 Messages : 34 ![]() |
Bon ba en faite non , j'ai essayé plusieurs choses, mais il y'a quelque chose que je comprend pas : le SELECT COUNT() dans le WHERE, et le < n dans l'exemple. Je ne comprends pas l'utilité dans la requête ?
|
|
|
00
|
|
|
#7 | ||
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Je suppose que les identifiants de topics sont classés par ordre croissant de création des topics.
Sans avoir testé, la requête suivante devrait s'approcher de ce que tu souhaites obtenir : Code :
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
||
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : avril 2007 Messages : 34 ![]() |
Non je me retrouve avec tous les Topics de chaque forum. Donc une grosse quantité au lieu de 10 par forum.
Je suis en train de faire des tests avec des BEETWEEN, je sais pas ce que ça va donner. Parce que j'ai beau chercher je comprend pas à quoi sert le SELECT COUNT dans l'exemple que tu m'as donné :/ |
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Le SELECT COUNT permet, pour chaque topic, d'aller chercher le nombre de topics qui sont dans le même forum (d'où l'égalité sur les forum_id dans la sous-requête), mais avec un identifiant supérieur au topic.
Et on limite le résultat aux topics qui ont moins de 10 topics qui leur sont postérieurs... C'est curieux que ça renvoie tous les topics d'un forum... On peut avoir un jeu d'essai ?
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() Inscription : avril 2007 Messages : 34 ![]() |
Je n'ai rien dis, c'est moi qui doit merdé dans mon affichage, ça renvoie bien 30 résultats, 10 par forum ! J'ai vérifié avec php_my_admin.
Je vais malgré tout me pencher sur cette histoire de COUNT histoire de bien saisir, parce qu'avoir le résultat c'est bien, mais le comprendre c'est mieux Merci encore, je vais noter le topic en résolu |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com