Accueil > Forum > > > > problème de LEFT JOIN en MySQL5
problème de LEFT JOIN en MySQL5
mercredi 21 novembre 2007 à 10:45:00 |
problème de LEFT JOIN en MySQL5

kiki2sirom
|
Bonjour à tous, J'ai un souci avec certaines de mes requêtes avec MySQL5 (chez moi) En MySQL4 je n'ai pas de problème (au bureau) Explication : 1) déjà j'ai remarqué que des LEFT JOIN "éloigné" ne fonctionnait pas avec MySQL5 from t1, t2 LEFT JOIN t3 on t3.id=t1.id : fonctionne avec MySQL4 aisément modifiable pour MySQL5 ( from t1 LEFT JOIN t3 on t3.id=t1.id, t2) BON OK ça, bien que pas pratique, c'est aisément modifiable... par contre !!! 2) quand je fais un LEFT JOIN sur 2 tables, eh bien l'erreur est la même, sauf que le principe précité ne fonctionne plus. EXEMPLE (bidon je précise) : from t1, t2 LEFT JOIN t3 on t3.id=t1.id and t3.id=t2.id fonctionne avec MySQL4 et pas avec MySQL5 sauf que là..... je suis un peu sceptique sur la résolution de ce problème l'erreur MySQL dans les 2 cas : erreur 1054, Unable to perform query.... Unknown column 't1.id' in 'on clause' Dois-je oublier mon appli sous MySQL5 ? Que dois-je changer concrètement dans ma requête pour qu'elle soit MySQL5 capable ? Quelqu'un peut-il m'aiguiller ? Merci beaucoup. Ma config : WAMP 1.7.4 kiki
|
|
dimanche 25 novembre 2007 à 01:10:15 |
Re : problème de LEFT JOIN en MySQL5

neigedhiver
|
Salut,
Je sais pas pourquoi j'avais pas répondu plus tôt... Désolé pour toute cette attente, j'espère que tu as trouvé une solution, ou alors que c'était pas urgent...
La requête suivante :
SELECT t1.a, t2.b FROM t1, t2;
est une jointure. C'est une syntaxe alternative à LEFT JOIN, qui permet une compatibilité avec ODBC.
Ca, c'est pour le préambule.
Le plus propre, pour faire 2 jointures est encore de les écrire explicitement :
SELECT patati, patata, blabla,
FROM t1
LEFT JOIN t2
ON t1.machin=t2.bidule
LEFT JOIN t3
ON t3.id=t1.id;
Une requête n'est pas limitée à un seul LEFT JOIN.
|
|
mardi 27 novembre 2007 à 11:35:44 |
Re : problème de LEFT JOIN en MySQL5

kiki2sirom
|
Salut,
Je ne suis pas d'accord avec toi. Tu te méprends.
Une requête "from t1, t2..." n'est pas du tout identique à "t1 LEFT JOIN t2 ON ...." mais correspond à t1 INNER JOIN t2 ON ...
Je sais bien qu'une requête n'est pas limitée à 1 seul LEFT JOIN...
Je fais partie d'un groupe de développeurs et nous travaillons entre autres pour une banque où nous avons plusieurs applications pour eux, dont 1 qui comprend 1 BDD de 130 tables dont certaines à plus de 2 000 000 d'enregistrements...
Tout ça pour te dire que si je ne connaissais pas les LEFT JOIN, je serai bien dans la mouise ;-)
Où mon problème se situe : * il est apparemment, vu ma syntaxe, pas possible avec MySQL5 de faire un LEFT JOIN sur 2 tables ou plus... mon exemple : from t1, t2 LEFT JOIN t3 on t3.id=t1.id and t3.id=t2.id est différent de : from t1 LEFT JOIN t2 on t1.id=t2.id LEFT JOIN t3 on t1.id=t3.id
Merci d'essayer de m'aider kiki
|
|
mardi 27 novembre 2007 à 11:44:17 |
Re : problème de LEFT JOIN en MySQL5

kiki2sirom
|
Bon pour être plus clair, je te met mon exemple qui ne fonctionne pas chez moi avec MySQL5 et qui fonctionne avec MySQL4 au bureau :
from facturation, facturation_regle LEFT JOIN taux_change on taux_change.devise=facturation_regle.devise and left(taux_change.date_cours,8)=left(facturation.periode_fin,8)
Merci !!
kiki
|
|
mardi 27 novembre 2007 à 12:25:48 |
Re : problème de LEFT JOIN en MySQL5

neigedhiver
|
Salut,
Et avec un WHERE ?
from facturation, facturation_regle LEFT JOIN taux_change on taux_change.devise=facturation_regle.devise
WHERE left(taux_change.date_cours,8)=left(facturation.periode_fin,8)
Sinon, y'a pas de raison que la requête ne fonctionne pas, elle me parait syntaxiquement correcte.
Quel est le message d'erreur que tu obtiens ?
|
|
mardi 27 novembre 2007 à 12:36:35 |
Re : problème de LEFT JOIN en MySQL5

kiki2sirom
|
J'obtiens le message d'erreur suivant :
* Error 1054 : Unknown column 'periode_fin' in 'on clause'
MySQL5 ne "voit pas" la table "facturation"... mais MySQL4 la voit, ça ne pose pas de problèmes.
A moins que le LEFT JOIN sur 2 tables ne soit pas correct-correct ?
et ta solution du where, donnera-t-il le même résultat ? je ne suis pas convaincu...
Encore merci de ton aide... Kiki
|
|
mardi 27 novembre 2007 à 13:43:11 |
Re : problème de LEFT JOIN en MySQL5

neigedhiver
|
Ah ben non... C'est bon... Me souviens...
Quand on fait des jointures, il FAUT utiliser des alias pour les tables.
from facturation f, facturation_regle fr LEFT JOIN taux_change tc on tc.devise=fr.devise and left(tc.date_cours,8)=left(f.periode_fin,8)
|
|
mercredi 28 novembre 2007 à 11:07:07 |
Re : problème de LEFT JOIN en MySQL5

kiki2sirom
|
salut,
Merci de te pencher sur mon problème, mais cela ne fonctionne pas, y compris avec les alias :
from facturation as tb1, facturation_regle as tb2 left join taux_change as tb3 on tb3.devise=tb2.devise and left(tb3.date_cours,8)=left(tb1.periode_fin,8)
Error 1054 : Unknown column 'tb1.periode_fin' in 'on clause'
kiki
|
|
mercredi 5 décembre 2007 à 21:52:46 |
Re : problème de LEFT JOIN en MySQL5

kiki2sirom
|
bonsoir,
personne pour me dépanner ? je pense qu'il n'y a pas de solution à mon problème alors...
merci à neigedhiver kiki
|
|
mercredi 5 décembre 2007 à 22:01:39 |
Re : problème de LEFT JOIN en MySQL5

neigedhiver
|
Réponse acceptée !
Salut,
Je persiste à penser qu'il est préférable d'éviter de mettre plusieurs tables dans la clause where quand tu fais une jointure... Puisque c'est déjà une jointure, tu n'as qu'à la formuler explicitement.
J'avais rencontré ce problème de champ inconnu. En ne mettant qu'une seule table dans mon where, c'est passé comme une lettre à la poste.
|
|
Cette discussion est classée dans : t1, id, left, join, mysql5
Répondre à ce message
Sujets en rapport avec ce message
PHP : problèmes d'affichage en utilisant plusieurs requetes [ par vir76 ]
Voici mon problème :Je dispose de 3 requêtes :la première me permet de visualiser les dotations pour chaque sousdirection$rq="SELECT T_ANNEE.ANNEE_ANN
problème de requête update avec php mysql [ par metapat ]
Bonjour, j'ai un problème d'UPDATE en php mysql, je ne le comprends pas voilà le bout de code:je veux mettre la table ressources à jour, elle contient
Petite question concernant mysql_fetch_object [ par ceeno ]
Bonjour,Je souhaiterais savoir une petite chose, prenons le code :$sql="SELECT t1.ID,t2.ID FROM t1,t2 WHERE t1.ID = 10 AND t1.ID = t2.ID";$res=mysql_q
Utiliser une clause WHERE avant un INNER JOIN [ par jean84 ]
HelloJe souhaite realiser une jointure dans mes requetes sql. Le probleme, c'est que je dois utiliser une clause WHERE avant un INNER JOIN et que MySQ
Probleme requete group by [ par lowkey ]
Salut à tous !Voici ma requete : SELECT t.id_artisan FROM cp_artisan, travail_artisan t INNER JOIN travail_artisan t1 ON t1.id_artisan = t.id_artisan
Problème de requête [IMPORTANT] [ par pcgpegase ]
Bonjour à tous,Ca serait vraiment super si vous pouviez m'aider !Comment faire pour qu'on récupère un enregistrement qui est NULL, je m'explique :Je f
Synthaxe des requetes avec valeur $_POST [ par vinz29 ]
Bonjour, Je débute en PHP, et je bloque sur l'affichage d'une requête depuis 2 jours... Voilà, j'effectue une requête vers une base MySQL à partir d'
JOINTURE pas obliger [ par xactise ]
Bonjour à tous ! Petite question je vous expose la situation ! j'ai 4 objet différent qui ont 4 table différent avec des champs parfois identique pa
requete n'affiche pas le resultat [ par joujma5 ]
bonjour, j'ai deux tables, table nommé sport et une autre nommé student, je veux afficher les étudiants inscrit dans la table student dont leur id n'e
Problème avec les lettres accentuées dans une requête [ par jojo2010 ]
Bj, J'ai une requte que voici $req=mysql_query("SELECT $id FROM $table WHERE $nom_ch='".mysql_real_escape_string($nom_poster)."'"); $res=mysql_fetch_a
Livres en rapport
|
Derniers Blogs
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|