Erreur de syntaxe SQL
sanbout
Messages postés
16
Statut
Membre
-
sanbout Messages postés 16 Statut Membre -
sanbout Messages postés 16 Statut Membre -
Bonjour,
je n'arrive pas à trouver l'erreur que je fais dans cette requête :
Quand je la lance dans MySQL, cette erreur s'affiche :
Le problème parait long comme ça mais si quelqu'un pouvait m'aider ^^
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 ^^
Configuration: Windows XP Internet Explorer 7.0
4 réponses
-
Bonjour,
Pas de virgule pour séparer les clauses JOIN.
Xavier -
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 !!! -
'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 -
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 ^^)