Partage
  • Partager sur Facebook
  • Partager sur Twitter

Requête pour un forum

Sujet résolu
    8 juin 2010 à 14:42:31

    Salut,

    Je voudrai récupérer pour chaque id_topic, le post du dernier message et l'auteur de ce post.

    Ma table:

    MESSAGES
    id_message
    id_topic
    author
    date

    Requête1:
    SELECT id_topic, author, max(date) FROM messages GROUP BY(id_topic)
    L'auteur qui s'affiche est la première occurence de message que mySQL trouve dans la bdd pour l'id de topic courrant. J'ai donc l'auteur du message racine du topic et non celui du dernier post...

    Requête2:
    SELECT id_topic, author, max(date) FROM messages
    WHERE date = (SELECT max(date) FROM messages)
    GROUP BY(id_topic)
    Là j'ai la date du dernier post sur tous les messages de la bdd, et non pas sur celui du topic en cours...

    Requête3:
    SELECT id_topic, author, max(date) FROM messages
    WHERE date = (SELECT max(date) FROM messages WHERE id_topic = ???)
    GROUP BY(id_topic)
    Je ne peux pas récupérer l'id du topic qui m'interesse dans le select du dessus...

    Donc voilà, avec tout ça jsuis bien emmerdé :'(
    Je sais récupérer le résultat au final mais en envoyant 2 requêtes successives, mais je souhaite en envoyer qu'une seule... épissétou...

    Merci d'avance =)
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      8 juin 2010 à 14:51:20

      Citation : Rodolph


      Je voudrai récupérer pour chaque id_topic, le post du dernier message et l'auteur de ce post.

      Ma table:

      MESSAGES
      id_message
      id_topic
      author
      date


      Je vais supposer que la colonne id_message est un entier auto-incréménté.
      Donc, plutôt que se baser sur la date, la plus grande valeur de id_message, sera le message le plus récent.

      SELECT m.id_message, m.id_topic, m.author, m.date
      FROM messages AS m
        JOIN (
          SELECT MAX(id_message) AS id_message, id_topic
          FROM messages
          GROUP BY id_topic
        ) AS td
          ON td.id_message = m.id_message
         AND td.id_topic = m.id_topic -- Pas forcément nécessaire.
      
      • Partager sur Facebook
      • Partager sur Twitter
        8 juin 2010 à 15:01:46

        Impec' :D

        J'avais pensé à faire une jointure de la table avec elle-même, mais d'une façon bizarre apparemment...

        Merci pour la rapidité & l'efficacité! :p
        • Partager sur Facebook
        • Partager sur Twitter

        Requête pour un forum

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown