MySQL Jointure

amoi -  
 amoi -
bon la je m'arrache la tête.....j'ai sincèrement besoin de votre aide

dans une table "table2" j'ai plusieurs champs dont deux (id_player_account et id_player_account_W) sont identiques pour l'instant

si je fais:
SELECT *
FROM 'table1'
LEFT JOIN 'table2' ON table2.id_player_account_W = table1.id_player_account

ca marche super mais si je fais

SELECT *
FROM 'table1'
LEFT JOIN 'table2' ON table2.id_player_account_W = table1.id_player_account

alors MySQL mouline dans le vide

Est ce que le nom des champs du WHERE d'une jointure doit etre strictment les meme??
Est ce que le nom des champs du WHERE doivent etre des clefs primaires??
Est ce que j'ai fais un boulette plus grosse que moi??
Please de l'aide please

6 réponses

  1. le père
     
    Bonjour

    Je n'ai peut-être pas les yeux en face des trous, mais je ne vois la différence entre tes deux requêtes.
    0
    1. amoi
       
      oupsss right....je reposte
      0
  2. amoi
     
    bon la je m'arrache la tête.....j'ai sincèrement besoin de votre aide

    dans une table "table2" j'ai plusieurs champs dont deux (id_player_account et id_player_account_W) sont identiques pour l'instant

    si je fais:
    SELECT *
    FROM 'table1'
    LEFT JOIN 'table2' ON table2.id_player_account = table1.id_player_account

    ca marche super mais si je fais

    SELECT *
    FROM 'table1'
    LEFT JOIN 'table2' ON table2.id_player_account_W = table1.id_player_account

    alors MySQL mouline dans le vide

    Est ce que le nom des champs du WHERE d'une jointure doit etre strictment les meme??
    Est ce que le nom des champs du WHERE doivent etre des clefs primaires??
    Est ce que j'ai fais un boulette plus grosse que moi??
    Please de l'aide please
    0
    1. amoi
       
      la difference est dans le _W :o)....je comprends pas
      0
  3. le père
     
    Je viens de faire l'essai avec des noms de champs différents (dans la clause ON, pas WHERE).
    Mes champs N'étaient pas des clefs primaires.
    Ça marche

    Reste à examiner la 3ème hypothèse ^^

    Tes champs id_player_account_W et id_player_account sont-ils vraiment complètement identiques dans ta table2 ?
    L'un d'eux serait-il indexé et l'autre non, ce qui expliquerait la différence de vitesse si tes tables sont importantes ?
    0
  4. amoi
     
    Tout d'abord merci merci pour ton aide, ca m'a donné une lueur d'espoir :o)

    c'est sans doute la troisième hypothèse :o))

    Qu'entend tu par indexé?..l'un serait un clef primaire et pas l'autre?....
    si c'est ta question, la reponse est

    table2.id_player_account_W et table1.id_player_account les deux ne sont pas des clefs primaires

    mais entre
    table2.id_player_account et table2.id_player_account_W, la premiere est une clef primaire.

    des idees?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. le père
     
    Qu'entend tu par indexé
    J'entends pas là qu'une clé (INDEX) pas forcément primaire a été définie sur ce champ.
    Si tes tables ne sont pas grosses, c'est certainement une fausse piste, mais sinon essaye de créer une clé sur table2.id_player_account_W
    0
  7. amoi
     
    alors j'ai indexé le champs....le serveur a fait sa maniclette....dans le meme temps le serveur a ete redemarré (serveur partager ..quelle connerie!!!)
    du coup tout marche bien....maintenant peut etre que c'est le reboot ou l'indexage...dans tous les cas merci, J'ai appris plein de truc grace a toi .... et cerise sur le gateau....ca marche

    Merci
    0