Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/08/2011, 14h07   #1
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juin 2011
Messages : 17
Points : 3
Points : 3
Par défaut Confusion resultat requete

Bonjour;

je dispose de la requete sql suivante:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
SELECT   us.userID,`civilite`, `name`,`prenom`, `budgettotal`,`telephone`,`Societe`,`email`, `code_postal` FROM  `users` us
 
 
Left JOIN users_societe_link usl ON us.UserID=usl.UserID 
Left JOIN  societe s ON  s.SocieteID=usl.SocieteID
 
 
Left JOIN  users_telephone_link utl ON us.UserID= utl.UserID 
Left JOIN   telephone t ON   t.telephoneID= utl.telephoneID
 
 
Left JOIN users_email_link uel ON us.UserID=uel.UserID 
Left JOIN  email ON  email.emailID=uel.emailID
 
 
Left JOIN users_code_postal_link upl ON us.UserID=upl.UserID 
Left JOIN code_postal cd ON cd.code_postalID=upl.code_postalID
 
where budgettotal > 0
mon probleme est que cette requete affiche plusieurs doublons pourquoi alors que cette ligne n'existe qu'une 1 fois dans ma base exemple :

la ligne du userID = 002 est affichée plusieurs fois ("cette ligne n'existe qu'une seule fois dans ma base, si je fais une suivie manuelle").

Merci
lambo89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 15h13   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 008
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 008
Points : 18 280
Points : 18 280
Envoyer un message via MSN à CinePhil
Je déduis de ta requête que les tables users_societe_link, users_telephone_link, users_email_link, users_code_postal_link sont des tables associatives, ce qui laisse supposer qu'un utilisateur peut être associé à plusieurs sociétés, plusieurs téléphones, plusieurs emails et plusieurs codes postaux.
Si c'est le cas, c'est normal que tu récupères plusieurs fois les mêmes utilisateurs.

Tu devrais utiliser les alias partout car on ne sait pas de quelles tables proviennent certaines colonnes dans ta requête.
Et profites-en pour la nettoyer complètement des apostrophes inversées inutiles.

Voici ta requête nettoyée et remise en forme :
Code SQL :
1
2
3
4
5
6
7
8
9
10
11
SELECT us.userID, civilite, name, prenom, budgettotal, telephone, Societe, email, code_postal 
FROM  users us 
LEFT JOIN users_societe_link usl ON us.UserID = usl.UserID 
    LEFT JOIN societe s ON  s.SocieteID = usl.SocieteID
LEFT JOIN users_telephone_link utl ON us.UserID = utl.UserID 
    LEFT JOIN telephone t ON t.telephoneID = utl.telephoneID
LEFT JOIN users_email_link uel ON us.UserID = uel.UserID 
    LEFT JOIN email ON email.emailID = uel.emailID 
LEFT JOIN users_code_postal_link upl ON us.UserID = upl.UserID 
    LEFT JOIN code_postal cd ON cd.code_postalID = upl.code_postalID
WHERE budgettotal > 0
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h20.


 
 
 
 
Partenaires

Hébergement Web