MySQL

freemok Messages postés 4 Statut Membre -  
jee pee Messages postés 42398 Statut Modérateur -
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

Midori
 
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 42398 Statut Modérateur 9 744
 
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