Selct at once ou distinct en mysql

Yop !
Bon, bah je travaille sur mon site comme tt les soirs depuis deux ans, mais là je bloque sur une requète depuis 3 heures ; je suis presque sur d'avoir déjà trouvé la solution mais pas moyen de mettre le curseur dessus :

J'ai une table de ce type :

table_message :
id_message id_news nom_utilisateur date_message


je cherche a sortir tous les résultats, classés par date mais en sachant que je ne veux pas de doublons de id_news

Si je fais un select distinct id_news le résultat est juste, sauf que j'ai QUE mes id_news, et pas de date_message, ou autres nom_util...
Si qqn m'a compris et a une solution, je suis preneur.

Il me semblait qu'il y avait une requète du genre Select at once... mais j'ai du rêver non ? Je l'ai pas retouvé ?

3 réponses

  1. Bon j'ai trouvé

    SELECT DISTINCT (
    id_news
    ), nom_util, date_message, titre_message
    FROM messages
    WHERE 1
    group by id_news
    order by date_message DESC
    LIMIT 0 , 30
    0
    1. Mais j'ai un problème...

      SELECT DISTINCT (id_news), nom_util, date_message, titre_message
      FROM messages
      WHERE id_news != 5
      group by id_news
      order by date_message DESC
      LIMIT 0 , 30

      me donne bien une liste de résultats unique de id_news ; tous ces résultats sont classés par date, mais je voudrais que ce soit chaque id_news le plus réssent qui sorte.
      Et aussi en affichant une seul fois chaque id_news, comment compter à chaque sortie le nb d'id_news identique ? Avec count,
      0
      1. Pour compter le nombre de id_news (tout en en affichant qu'un seul) j'ai trouvé :

        SELECT DISTINCT (id_news), nom_util, date_message, titre_message, COUNT(*) AS id_message
        FROM messages
        WHERE id_news != 5
        group by id_news
        order by date_message DESC
        LIMIT 0 , 30

        Mais le id news qui sort n'est toujours pas le dernier... mais le premier !
        0