Posez votre question Signaler

Erreur de syntaxe SQL

sanbout 16Messages postés 17 septembre 2007Date d'inscription - Dernière réponse le 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 ^^
Lire la suite 

Erreur de syntaxe SQL »

Suggestions
4 réponses
Réponse
+0
moins plus
Bonjour,

Pas de virgule pour séparer les clauses JOIN.

Xavier
Ajouter un commentaire
Réponse
+0
moins plus
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 !!!
Ajouter un commentaire
Réponse
+0
moins plus
'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
Ajouter un commentaire
Réponse
+0
moins plus
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 ^^)
Ajouter un commentaire
Ce document intitulé « Erreur de syntaxe SQL » 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 ?