ORDER BY récalcitrant

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : ORDER BY récalcitrant

par spirou » 05 août 2006, 15:26

Bon, j'ai résolu mon problème en ajoutant dans la table des sous-catégories une colonne faisant référence à la table des messages.

Ca me fait faire 4 requêtes lors du post d'un message, dont une de vérification.

Je sais pas si ça fait beaucoup, mais j'ai pas trouvé d'autres façons de faire à part bien sûr les sous requêtes, ce que je voulais absolument éviter pour ne pas retomber dans mes erreurs.

Merci à tous ;)

par spirou » 04 août 2006, 20:27

Merci,

Mais mon GROUP BY me sert bien.

Si je l'enlève, j'ai tous les messages de chaques sous catégories qui s'affichent.

Mais mon problème n'est pas là, à moins que je ne me trompe, ça, c'est fort possible.

C'est l'ORDER BY qui n'est pas appliqué.

J'ai toujours pas trouvé de solution :(

par Henri » 04 août 2006, 19:58

La syntaxe GROUP BY est à utiliser uniquement lorsque tu utilises une fonction d'agrégat (somme, moyenne, compte, ...)

Exemples

Code : Tout sélectionner

// nombre d'articles dans un stock groupés par nom d'articles select count (id_article), nom_article from article group by nom_article //total des ventes effectuées par un caissier select sum (prix_facture), caissier from ventes group by caissier
Dans ton select, tu n'as pas de fonction d'agrégat, donc le GROUP BY est inopérant.

ORDER BY récalcitrant

par spirou » 04 août 2006, 18:37

Bonjour,

Je suis désolé de venir vous réembêter, mais je n'en peux plus :cry:

A chaque fois que je refais la structure de mes tables, y'a toujours quelque chose qui me met dedans....

Cette fois ci, c'est un order by.

Ca fait 3 plombes que je cherches, et j'y arrive pas.

Je ne comprends pas pourquoi un ORDER BY DESC ne fonctionne pas.

Voici ma requête.

Code : Tout sélectionner

SELECT C.nom AS categorie, SC.id AS id_sous_cat, SC.nom AS forum, commentaire, S.id AS id_sujet, titre, nb_sujets, nb_reponses, id_pseudo_derniere_reponse AS ipdr, pseudo_derniere_reponse AS pdr, date_derniere_reponse AS date FROM f_categorie AS C LEFT JOIN f_sous_categorie AS SC ON C.id = SC.id_categorie LEFT JOIN f_topic_sujet AS S ON SC.id = S.id_sous_categorie LEFT JOIN f_topic_sujet_message AS TSM ON S.id = TSM.id_sujet GROUP BY SC.id ORDER BY C.id, SC.id, S.id DESC;
Donc avec cette requête tout fonctionne bien, sauf le S.id DESC

Ce que je désire, c'est qu'il m'affiche tout ceci par sous-catégorie, et dans l'ordre des catégories, sous_catégories et en affichant la dernière valeur de la table sujet.

Est-ce que c'est possible avec un ORDER BY S.id DESC ?

Donc que cela m'affiche la dernière entrée de la table f_sujet dans chaque sous-catégorie.

Merci.

Un désespéré pas loin de donner des coups à son ordinateur....