Probleme syntaxe sur jointure

Bonjour,


$pdostat = $bdd->prepare("SELECT id FROM villes LEFT JOIN membres ON villes.pos_x_map = membres.pos_x AND villes.pos_y_map = membres.pos_y WHERE membres.id=:id");
$pdostat->bindvalue(':id', $idMembreSession, PDO::PARAM_INT);
$pdostat->execute();


Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1052 Champ: 'id' dans field list est ambigu in C:\wamp64\w

j'ai mis villes.id en debut de SELECT mais cela ne fonctionne pas non plus.

3 réponses

  1. Modérateur
    Bonjour,

    Question qui n'a rien à voir avec le PHP .... mais avec le SQL !

    Je déplace donc ta question dans le bon forum ( encore...)

    Quoi qu'il en soit ... tu fais une jointure ...
    Tu as, dans tes deux tables, un champ ID
    Donc.. dans ton SELECT .. il faut préciser de quel ID il est question...
    par exemple, si c'est celui de la table ville
    SELECT villes.id  
     


    Tu peux aussi mettre des ALIAS à tes tables. ça rend l'écriture des requêtes plus simple
    SELECT V.id FROM villes V 
    LEFT JOIN membres M ON V.pos_x_map = M.pos_x AND V.pos_y_map = M.pos_y 
    WHERE M.id=:id
    


    0
  2. CA MARCHE AVEC SELECT villes.id
    0
    1. Modérateur
      Bien sûr que ça marche...
      Merci de mettre le sujet en Résolu ( pour ça, faudra revenir avec le compte nestor94 pour avoir accès au bouton)
      0