Erreur de syntaxe SQL

Fermé
sanbout Messages postés 16 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 28 octobre 2009 - 8 oct. 2007 à 16:46
sanbout Messages postés 16 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 28 octobre 2009 - 8 oct. 2007 à 21:22
Bonjour,
je n'arrive pas à trouver l'erreur que je fais dans cette requête :

SELECT 
	EssaiMachine.IDEssai AS IDEssai,	
	EssaiMachine.IDRole AS IDRole,	
	EssaiMachine.IDEssaiMachine AS IDEssaiMachine,	
	EssaiMachine.IDConfiguration AS IDConfiguration,	
	EssaiMachine.Rectangle AS Rectangle,	
	Machine.Nom AS Nom_Machine,	
	TypeRole.Libelle AS Libelle,	
	Configuration.Nom AS Nom_Configuration,	
	Machine.URLImage AS URLImage,	
	EssaiMachine.IDScenario AS IDScenario,	
	EssaiMachine.IDSecurite AS IDSecurite,	
	EssaiMachine.IDEquipement AS IDEquipement,	
	Scenario.Nom AS Nom_Scenario,	
	Securite.Nom AS Nom_Securite,	
	Equipement.Nom AS Nom_Equipement,	
	Essai.Nom AS Nom
FROM 
	RIGHT OUTER JOIN EssaiMachine ON Equipement.IDEquipement = EssaiMachine.IDEquipement,	
	INNER JOIN EssaiMachine ON Essai.IDEssai = EssaiMachine.IDEssai,	
	RIGHT OUTER JOIN EssaiMachine ON Configuration.IDConfiguration = EssaiMachine.IDConfiguration,	
	RIGHT OUTER JOIN EssaiMachine ON Securite.IDSecurite = EssaiMachine.IDSecurite,	
	RIGHT OUTER JOIN EssaiMachine ON Scenario.IDScenario = EssaiMachine.IDScenario,	
	INNER JOIN EssaiMachine ON Role.IDRole = EssaiMachine.IDRole,	
	INNER JOIN Role ON Machine.IDMachine = Role.IDMachine,	
	INNER JOIN Role ON TypeRole.CodeTypeRole = Role.CodeTypeRole
WHERE 
	(
	EssaiMachine.IDEssai = {pIDEssai}
	AND	TypeRole.CodeLangue = {pCodeLangue}
	);

Quand je la lance dans MySQL, cette erreur s'affiche :
ERROR 1064 <42000>: You have an error in your SQL syntax; check the manual that correspond to your MySQL server version for right syntax to use near 'RIGHT OUTER JOIN EssaiMachine ON Equipement.IDEquipement = EssaiMachine.IDEquipe' at line 19


Le problème parait long comme ça mais si quelqu'un pouvait m'aider ^^

4 réponses

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
8 oct. 2007 à 16:56
Bonjour,

Pas de virgule pour séparer les clauses JOIN.

Xavier
0
sanbout Messages postés 16 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 28 octobre 2009 2
8 oct. 2007 à 17:11
Merci pour la virgule, je cherche tellement que je ne vois plus -_-'
Bref, une erreur en cachant une autre, j'ai maintenant celle-là :

Not unique Table/Alias 'Parametre'

la requete est toujours la même, avec la virgule en moins entre les JOIN...

HEEEEEEEEEEEEEEEEEEEEEEEEEEELP !!!
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
8 oct. 2007 à 17:28
'Parametre' n'apparait même pas dans ta requête ?? Etrange !
Est-ce que les « tables » que tu utilises dans ta requête sont en fait des vues qui pointent vers une table « Parametre » ?

Sinon, je trouve très bizarre ta façon d'écrire les jointures, sans table directement dans la clause FROM, et en plaçant toujours EssaiMachine en JOIN avec un ON qui fait référence à des tables qui ne sont pas appelées...
Ta syntaxe m'est complètement étrangère, donc je ne saurais pas trop dire... As-tu déjà effectué ce genre de jointure sans problème ???

Xavier
0
sanbout Messages postés 16 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 28 octobre 2009 2
8 oct. 2007 à 21:22
J'ai trouver cette solution de ne pas appeler mes tables dans la clause FROM pour justement éviter ces problèmes de table non-unique. Et oui, se sont bien des tables et non pas des vues. Ce que je trouve tuant c'est que j'ai une trentaine de requètes dans le même genre et que j'en ai 4 ou 5 qui foirent... Je vais essayer d'appeler certaines tables (Equipement, Essai, etc...) pour voir si ça marche mieux...
Merci de ton aide Xavier!
(Reivax... J'adore ^^)
0