Mysql : DISTINCT

bonjour,

je fait la requette suivante :

mysql_query("SELECT DISTINCT forum_id FROM posts ORDER BY id ASC");

mais quand je récupére mes données, je ne peut pas avoir les autres champs (titre, id ...)

Y a t-il un moyen de les récupérer dans cette même requête ?

Merci

19 réponses

  1. je suppose que ta requete est mal fo**ue... si tu a plusieurs post sur le mm forum tu n'aura qu'un resultat quand meme... je doute que ce soit ce que tu veuilles...
    0
    1. Non c'est bon puisque c'est pour avoir le dernier message.
      0
      1. eh bien rajoute les champs dant ton select, ou est le pb ?
        SELECT DISTINCT forum_id,id,title FROM post ORDER BY id DESC
        0
        1. bah le probléme c'est que je veux éliminer tous les forum_id en double et avoir toutes les valeurs des autres champs
          0
          1. tu a essayé ce que je tai donné ? ca ne marche pas ?
            0
            1. Non quand je met ça rien n'est éliminé.
              j'ai tous les résultats qui s'affichent
              0
              1. rajoute group by forum_id,et dans ton traitement, tu memorises le forum_id en cours et tu n'affiches que le 1er.
                du genre :
                $current=-1 ;
                while($post=mysql_fetch_array($result)) {
                  if($current!=$post['forum_id']) {
                     $current=$post['forum_id'];
                      ... affichage.....
                  }//else : rien !
                }
                
                0
                1. oui enfin le probléme c'est qu'avec beaucoup de messages c'est un peut lent.
                  0
                  1. voui mai je t'avoue qu'au niveau de la requete sql je vois pas le truc...
                    0
                    1. peut être que c'est pas possible
                      0
                      1. ou pitetre qu'on est pas bon...
                        pitetre avec des requetes imriquées, mais ca fait un moment que jai pas touché a ca
                        0
                        1. je pense qu'il faut faire un GROUP BY puis HAVING :
                          GROUP BY forum_id
                          HAVING COUNT(*) == 1 ainsi les doublons ne s'affichent pas
                          0
                          1. non non non, il faut juste faire distinct(tonchamp), autrechamp, autrechamp... en mettant des parenthèses au distinct ca marche... je sais pas si ca va servir a quelque chose de répondre maintenant, mais ca me démangeait :) a toute !
                            0
                            1. Merci c'est exactement ce qui me fallait
                              0
                              1. ah tu vois spvz ca t'as pas répondu pour rien même moi ca m'a servi presque 2 ans après!
                                0
                            2. Moi pareil, encore un an après... Merci !
                              0
                              1. Et moi de même le lendemain ^^ ca fait trois ans quand même :p
                                0
                                1. Modérateur
                                  bonjour
                                  ne restez pas anonyme .... inscrivez-vous sur le forum !
                                  ce sera bien plus sympa vis à vis des gens qui voudront vous aider ...
                                  @mitiés
                                  b g
                                  0
                                  1. Et hop, 3 ans après, ça fait plaisir, merci beaucoup :)
                                    0