IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Confusion resultat requete [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 24
    Par défaut Confusion resultat requete
    Bonjour;

    je dispose de la requete sql suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 : 16 818
    Billets dans le blog
    14
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 23/09/2011, 18h24
  2. resultat requete SQL d'un select dans variable vb
    Par seb_06 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 11/10/2004, 16h29
  3. recuperation resultat requete
    Par mimilou dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 09/06/2004, 15h07
  4. Resultat requete dans une seule colonne
    Par mathieu--g dans le forum Sybase
    Réponses: 2
    Dernier message: 08/07/2003, 13h42
  5. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 13h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo