MySQL Jointure

Fermé
amoi - 5 avril 2010 à 16:22
 amoi - 6 avril 2010 à 17:37
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

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
oupsss right....je reposte
0
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
la difference est dans le _W :o)....je comprends pas
0
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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