Page 1 sur 1

erreur syntaxe requete

Posté : 07 déc. 2005, 13:26
par donatello
Bonjour,
j'essaye d'executer la requete suivante mais j'ai une erreur de syntaxe:
select p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from products where products_id=22 p left join specials s on p.products_id = s.products_id where products_status = '1' order by p.products_date_added desc limit 3
L'erreur semble se trouver à ce niveau:
where products_id=22 p left join 
Quelqu'un voit-il ce qui ne va pas?

Posté : 07 déc. 2005, 13:27
par zeus
Quelle est cette erreur ?

sinon, dans l'ordre, je vois, SELECT FROM WHERE LEFT JOIN WHERE ORDER BY alors qu'il faut SELECT FROM LEFT JOIN WHERE ORDER BY
Tu doit grouper tes conditions WHERE après la jointure
de plus, à quoi correspond le if dans le select ? :shock:

Posté : 07 déc. 2005, 13:28
par donatello
1064 - Erreur de syntaxe près de 'p left join specials s on p.products_id = s.products_id where pr' à la ligne 1

Posté : 07 déc. 2005, 15:14
par albat
La précision d'une jointure (JOIN) se fait dans la clause FROM et non dans la clause WHERE.

Posté : 07 déc. 2005, 15:17
par albat
De plus, ta requête contient 2 clauses WHERE. :evil:

Enfin, si ton champ products_status est de type numérique, n'utilise pas d'apostrophes autour de la valeur 1
et s'il ne l'est pas, c'est sans doute une erreur de modélisation... ;)

Code : Tout sélectionner

SELECT P.products_id, P.products_image, P.products_tax_class_id, if(S.status, S.specials_new_products_price, P.products_price) AS products_price FROM products P LEFT JOIN specials S on P.products_id = S.products_id WHERE products_id=22 AND products_status = 1 ORDER BY P.products_date_added DESC LIMIT 3

Posté : 07 déc. 2005, 15:19
par albat
Dernier point.
Puisque tu as eu la bonne idée de donner des alias (P et S) à tes tables,
n'oublie pas de les utiliser pour préfixer tous tes champs.
Notamment dans la clause WHERE.

Code : Tout sélectionner

WHERE P.products_id=22 AND P.products_status = 1

Posté : 07 déc. 2005, 20:11
par donatello
ça marche beaucoup mieux après vos remarques. merci!

Posté : 07 déc. 2005, 22:24
par Cyrano
Un petit [Résolu] serait-il approprié :?:

Posté : 08 déc. 2005, 11:37
par donatello
tout à fait, cher Maître.