thiosyiasar
Messages postés186Date d'inscriptionlundi 11 mars 2002StatutMembreDernière intervention30 novembre 2010
-
19 juin 2005 à 20:06
originalcompo
Messages postés65Date d'inscriptiondimanche 3 avril 2005StatutMembreDernière intervention 9 octobre 2007
-
2 juil. 2005 à 23:04
Bonjour,
Je veux récupérer une liste d'utilisateur dans une table utilisateur. (id, nom, prénom, email)
L'application qui alimente la table ne prend pas en compte l'unicité des adresses email et les utilisateurs peuvent donc s'inscrire plusieurs fois avec le même mail
Le résultat de ma requète ne doit pas contenir de doublons au niveau des emails, les champs importent peu.
Alors je me suis dis que la réquete suivante allait marcher
SELECT DISTINCT user_id, user_lastname, user_fisrtname, user_email FROM users
Malheureusement j'ai toujours des doublons dans les mails
De même qu'avec
SELECT DISTINCT user_id, user_lastname, user_fisrtname, user_email
FROM users
WHERE user_email IN
( SELECT DISTINCT user_email FROM users )
et je me rend compte maintenant que c'est débile !!!, j'ai toujours des doublons
thiosyiasar
Messages postés186Date d'inscriptionlundi 11 mars 2002StatutMembreDernière intervention30 novembre 20103 20 juin 2005 à 10:31
Je ne vois par l'intérêt car le distinct c'est sur la ligne non ?
Bon bah après test (c'est pas mieux...) !
Tant que personne n'a d'idée, je vais tenter avec un jointure
Genre un select distinct email sur user, puis une jointure pour extraire les autres colonnes
originalcompo
Messages postés65Date d'inscriptiondimanche 3 avril 2005StatutMembreDernière intervention 9 octobre 20071 2 juil. 2005 à 23:04
Sinon, en regardant une de mes autres astuces, je viens d'avoir une idée, à condition que ta base accepte les champs auto-incrementes et que tu soit près à en rajouter un, je pense que cette requète peut marcher:
1) rajouter une colonne auto incrémentée TEMP à ta table T1
2) faire:
select * from T1
where TEMP in (select min(I.TEMP)
from T1 I
where I.MAIL=T1.MAIL
):