IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

tri complexe mysql


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 15
    Points : 13
    Points
    13
    Par défaut tri complexe mysql
    Salut à tous,

    Je bute sur une requête avec un tri complexe. J'au une table "articles" et une autre "commentaires" qui recueille les commentaires postés sur chaque article.

    J'ai donc deux tables
    articles a (id | art)
    commentaires c (id | id_article | com)

    Les deux tables sont liées : c.id_article=a.id

    Je cherche à afficher la liste des commentaires, triés par ordre de DERNIER commentaire décroissant, mais regroupés par article

    exemple :

    articles (id | art)
    1 | art1
    2 | art2
    3 | art3

    commentaires (id | id_article | com)
    1 | 1 | com1
    2 | 3 | com2
    3 | 3 | com3
    4 | 2 | com4
    5 | 1 | com5
    6 | 3 | com6

    ici je voudrais récupérer les commentaires, triés comme ceci

    6 | 3 | com6 : dernier commentaire posté
    3 | 3 | com3 : autres commentaires liés à l'article (ici 3), triés par ordre DESC
    2 | 3 | com2 : ...
    5 | 1 | com5 : plus de commentaires liés à 3, on recommence
    1 | 1 | com1 : ...
    4 | 2 | com4 : ...

    Pensez vous qu'on peut faire ça directement sous mysql, ou fait t'il passer par PHP ? vous auriez des idées ?

    Merci !

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    comme cela?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    order by id_article desc, id desc

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Merci pour ta réponse, mais non ! car il va trier par id_article c'est à dire du plus ancien article au plus récent, et c'est pas ce que je souhaite...

    C'est pas si simple...

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 029
    Points : 23 748
    Points
    23 748
    Par défaut
    Bonjour,

    Effectivement, ça n'a pas l'air si simple que ça...
    A partir de l'exemple que tu as donné, et si ta version de MySQL supporte les sous-requêtes (>= 4.1), voici une requête qui donne le tri que tu attends :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select t1.id, t1.id_article, t1.com, t2.top
    from commentaires t1
    inner join
    (select id, id_article, com, max(id) as top
    from commentaires
    group by id_article) as t2 on t1.id_article = t2.id_article
    order by top desc, id desc
    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    C'est exactement ça ! Merci merci merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/06/2008, 17h46
  2. [MySQL] Tri Résultats MySQL
    Par thonglith dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/04/2008, 18h44
  3. Tri complexe sur une table
    Par fwdavy dans le forum Requêtes
    Réponses: 1
    Dernier message: 15/11/2007, 23h40
  4. Requête complexe mySQL
    Par sonic64 dans le forum Requêtes
    Réponses: 4
    Dernier message: 17/04/2007, 15h54
  5. Tri special MySql
    Par gelko dans le forum Requêtes
    Réponses: 9
    Dernier message: 06/03/2007, 10h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo