Encore un problème de doublons!

Eléphant du PHP | 112 Messages

05 mai 2008, 01:57

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

05 mai 2008, 12:13

Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "SQL & Bases de données".
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 1353 Messages

05 mai 2008, 14:09

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 :)
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphant du PHP | 112 Messages

06 mai 2008, 23:03

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 +