|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : octobre 2008 Messages : 23 ![]() |
Bonjour à tous,
Voilà, j'ai 2 tables pour gérer les entrainements une stockant les réponses des membres et une pour stocker les invités. La table "entrainements" contient seulement l'id du membre alors que la table "entrainements_invite" contient le nom de l'invité. Et je voudrais en 1 requête récupérer le nom du membre (d'où la jointure entre la table "membres" où est stocké le nom du membre et la table "entrainements") et le nom de l'invité, tout ça par rapport à une date. Voici ma requête : Code :
Et le message d'erreur est "Illegal mix of collations for operation 'UNION'". Merci d'avance si vous pouvez m'aider. |
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Bonjour,
Il faut plutôt faire une jointure supplémentaire entre "entrainements" et "entrainements_invit" sur le numéro de l'entrainement.
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : octobre 2008 Messages : 23 ![]() |
Merci Ced pour ta réponse.
J'ai déjà essayé cette méthode mais je dois mal m'y prendre car ça me sort 2 colonnes par ligne (alors que j'en voudrais qu'une) et ça met autant de ligne avec les login des membres qu'il y a d'invité (je sais pas si je me fais bien comprendre ...) Voici la requête que j'avais essayé : Code :
|
||
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Mets-nous un petit jeu de données et le résultat que tu attends.
Ça sera plus facile pour pouvoir t'aider.
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : octobre 2008 Messages : 23 ![]() |
Oui tu as raison, je suis pas très clair dans mes explications !
Exemple de résultats : résultat de la 1ère requête (jointure "entrainement" et "membres") : (1 colonne) nommembre1 nommembre2 nommembre3 résulat de la seconde ("entrainement_invit"): (1 colonne) nominvite1 nominvite2 le résultat souhaité de l'union ou autre jointure : nommembre1 nommembre2 nommembre3 nominvite1 nominvite2 et si possible trié par un champ "dateRec" présent dans les 2 tables "entrainements" et "entrainements_invit" et voici ce que j'obtiens avec la double jointure : (2 colonnes) nommembre1 | nominvite1 nommembre1 | nominvite2 nommembre2 | nominvite1 nommembre2 | nominvite2 nommembre3 | nominvite1 nommembre3 | nominvite2 |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
OK, c'est plus clair à présent.
Vu comme ça, il faut bien passer par une UNION. Le seul problème, c'est qu'apparemment, tes 2 colonnes nommembre et nominvite n'ont pas la même collation. Les jeux de caractères sont peut-être différents, ce qui fait que la collation de l'un est inutilisable avec l'autre. De quel type sont ces champs, quel jeu de caractère et quelle collation ? Jette un oeil dans la documentation MySQL ici : http://dev.mysql.com/doc/refman/5.0/...n-charset.html
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : octobre 2008 Messages : 23 ![]() |
Oh ! Honte à moi !
Merci Ced. J'avais déjà explorer cette piste (j'avais vu cette possibilité d'erreur dans mes recherches) et mis toutes mes tables en "latin_general_ci" (car j'en avais en "latin_german_ci") mais ça ne résolvait pas le problème. Mais après ton message, j'ai revérifié et c'était mon champ "nomInvit" qui était resté en "latin_german_ci" (malgré le changement au niveau de la table). Une fois ce champ modifié, la requête d'UNION fonctionne nickel ! Encore merci et bonne continuation. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com