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

Requêtes MySQL Discussion :

Jointure SQL


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Par défaut Jointure SQL
    Bonjour à tous,
    Je suis actuellement entrain de travailler sur un script qui nécessite l'utilisation des jointures SQL, mais je pose problème sur une chose.

    Voici ma requête SQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $sql_lieu='SELECT c.nom, c.type,p.posX,p.nom_pnj
    FROM carte AS c
    LEFT JOIN pnj AS p
    ON c.posY = p.posY
    LEFT JOIN pnj AS p2
    ON c.posX = p2.posX
    WHERE c.id_lieu = 1
    ';
    Le problème que je rencontre, c'est que il me donne bien le résultat associé à la table carte, mais pas les champs de la table pnj.
    Par exemple nom_pnj se trouve dans la table pnj, mais dès que j'essaye d'écrire à l'aide d'un echo le contenu de ce champs, il n'y a rien.

    Merci de votre futur aide.

  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
    Pourquoi LEFT JOIN ?
    Ta requête va te donner tous les c.nom, c.type et s'il n'y a pas de correspondance dans pnj, les p.posX,p.nom_pnj seront NULL.

    Si c'est vraiment ce que tu veux, pourquoi 2 LEFT JOIN ?
    Si je comprends ce que tu cherches à faire, la correspondance doit être faite avec les coordonnées x et les y, ce qui me semble logique ?
    Alors un seul LEFT JOIN devrait suffire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql_lieu = 'SELECT c.nom, c.type, p.posX, p.nom_pnj
    FROM carte AS c
    LEFT JOIN pnj AS p
    ON c.posY = p.posY AND c.posX = p2.posX
    WHERE c.id_lieu = 1
    ';
    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 !

  3. #3
    Membre habitué
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Par défaut
    Merci de ta réponse Cinephil, j'ai essayer ta technique mais ça ne marche toujours pas.

  4. #4
    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
    Et dans la base de données, y a t-il bien au moins une ligne de pnj qui a les mêmes coordonnées x et y que la carte 'id_lieu = 1' ?
    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 !

  5. #5
    Membre habitué
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Par défaut
    MDR, merci à toi, c'est moi qui avait oublié de mettre un moin dans la BDD.
    Problème résolu.
    Désolé pour l'erreur conne et merci à toi.

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

Discussions similaires

  1. [SQL] problème de variable tableau PHP contenant les données d'une jointure SQL
    Par Schpountz42 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/02/2007, 06h59
  2. [MS Query] neophyte demande aide sur jointures SQL
    Par thorgal972 dans le forum Langage SQL
    Réponses: 19
    Dernier message: 27/11/2006, 18h13
  3. [SQL] PB : Jointure SQL ne fonctionne pas..
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 13/09/2006, 15h03
  4. Réponses: 1
    Dernier message: 28/07/2006, 04h57
  5. Réponses: 4
    Dernier message: 11/10/2005, 11h17

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