Les Allergies
Alimentaires
Posez votre question Signaler

MySQL Jointure

amoi - Dernière réponse le 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
Lire la suite 

MySQL Jointure »

8 réponses
Réponse
+0
moins plus
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.
amoi - 5 avril 2010 à 16:51
oupsss right....je reposte
Ajouter un commentaire
Réponse
+0
moins plus
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
amoi - 5 avril 2010 à 16:52
la difference est dans le _W :o)....je comprends pas
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
Ajouter un commentaire
Réponse
+0
moins plus
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?
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Ce document intitulé « MySQL Jointure » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?