MySQL

Fermé
freemok Messages postés 3 Date d'inscription dimanche 31 octobre 2010 Statut Membre Dernière intervention 6 mai 2012 - 6 mai 2012 à 12:24
jee pee Messages postés 40431 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 7 novembre 2024 - 6 mai 2012 à 18:14
Bonjour,
j'ai une question suivante si quelqu'un peut aider:
Écrire une requête listant les emails utilisés par plus d'un utilisateur, sachant que j'ai la table suivante:
CREATE TABLE IF NOT EXISTS 'user' (
'id' varchar(30) NOT NULL,
'prenom' varchar(30) NOT NULL,
'nom' varchar(30) NOT NULL,
'sexe' varchar(30) NOT NULL,
'mail' varchar(30) NOT NULL,
'date' datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

j'ai essayé cette requête mais je la trouve pas logique:
SELECT count(*) FROM nom_table WHERE champ_mail=variable_mail

Merci d'avance pour votre aide.

2 réponses

Bonjour,

Tu veux dire quoi par variable_mail? L'e-mail en question?
Sinon je peux te proposer de créer une table Email, et que tu la relie avec User avec une cardinalité 1.n côté email, et 0.n côté User.
Comme ça tu auras une table relation EmailUser dans le schéma est :
EmailUser(id_user,ide_mail) avec id_user et id_mail clé primaire composée.
Il te reste plus qu'écrire la requête:
Select count(*) from EmailUser where id_mail=valeur
(valeur= l'id de l'email que tu cherches à avoir la liste de ses utilisateurs)

J'espère que ça va aider..
Bonne chance
0
jee pee Messages postés 40431 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 7 novembre 2024 9 417
Modifié par jee pee le 6/05/2012 à 18:18
Salut,

une requête listant les emails utilisés par plus d'un utilisateur

C'est à dire tous les emails présents plus d'une fois dans la table.

Sous oracle j'utiliserais :

select mail from table group by mail having count(*) > 1 ;

cdlt

Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0