Page 1 sur 1

Encore un problème de doublons!

Posté : 05 mai 2008, 01:57
par Anémone
Bonjour,

Ce que j'ai pu étudier traitant de l'élimination des doublons d'une table partait du principe que seul le
champ index différenciait les doublons. De fait, il n'y a plus qu'à extraire les entrées uniques pour les reintroduire dans une table complétement vidée, en passant pas une table provisoire ou un fichier texte (je penchais pour cette dernière solution). Mais voilà, si l'on considère que le doublonage porte sur un seul champ, comment peut on récupérer les autres champs avec un SELECT DISTINCT?
Illustration:
$distinct=mysql_query("SELECT DISTINCT champ1 FROM table");
while($edition=mysql_fetch_array($distinct))
{echo $distinct['champ1'].";".$distinct['champ2'];}
//affiche bien les entrées uniques, mais pas les valeurs du champ2 correspondantes
$distinct=mysql_query("SELECT DISTINCT champ1, champ2 FROM table");
while($edition=mysql_fetch_array($distinct))
{echo $distinct['champ1'].";".$distinct['champ2'];}
//n'affiche rien, car il n'y a pas de doublon sur les 2 champs à la fois
Avez vous des idées là-dessus?
Merci.

Posté : 05 mai 2008, 12:13
par Ryle
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "SQL & Bases de données".

Posté : 05 mai 2008, 14:09
par guilt92
Bonjour,

Il suffit d'utiliser l'attribut GROUP BY qui te permet de choisir sur quel champ le DISTINCT s'appliquera...

Code : Tout sélectionner

SELECT DISTINCT champ1, champ2 FROM table" GROUP BY champ1
devrait te renvoyer les champs 1 et 2 des entrées avec un champ1 unique :)

Posté : 06 mai 2008, 23:03
par Anémone
Merci pour cette réponse, ça va le faire!
(Et demain matin, je fonce à la librairie rechercher de la littérature sur le sql)
A +