Rechercher : dans
Par :

Probleme requête mysql avec jointure et alias

Dernière réponse le 10 mai 2009 à 23:19:48 shelko, le 20 mar 2009 à 21:47:03 
 Signaler ce message aux modérateurs

Bonjour,
J'ai récupéré une requête permettant de trier dans une bdd des villes en fonction de leur distance avec une ville de référence.
Je l'ai adaptée à ma sauce car chez moi je dois ajouter une caractéristique supplémentaire qui fait que j'ai une jointure .
Cela me donne ça :

SELECT societe.soc, societe.descsoc, societe.villesoc, ville.zip,ville.ville,((6366*acos(cos(radians('$latbase'))*c­os(radians(`ville`.`lat`))*cos(radians(`ville`.`long`)-radia­ns('$longbase'))+sin(radians('$latbase'))*sin(radians(`ville­`.`lat`)))) AS Proximite
FROM societe INNER JOIN ville ON societe.villesoc=ville.idville
WHERE societe.tag='$key' LIMIT 0,20 ORDER By proximite


Et lorsque j'éxécute cette requête j'ai ce message d'erreur:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS Proximite FROM societe INNER JOIN ville ON societe.villesoc=ville.idville WHE' at line 1

J'ai relus plusieurs fois mon code et j'avoue que je pêche un peu donc si quelqu'un a une idée je suis preneur.
Configuration: Windows XP
Firefox 3.0.7

1

Albert, le 20 mar 2009 à 22:00:43

Bonsoir , a priori les parenthèses s'emmêlent, enfin il semble.

Répondre à Albert

2

shelko, le 21 mar 2009 à 04:21:39

J'ai vérifié les parenthèses il y en avait une de trop en effet mais ce n'est pas ça.
j'ai remis des minuscules à proximité, car visiblement c'est mon alias qui ne fonctionne pas car cela merdouille au niveau du order by (je l'ai viré et ma requête fonctionne.
Donc si quelqu'un a une solution je suis preneur

Répondre à shelko

3

 gg, le 10 mai 2009 à 23:19:48

Ton mot Proximite est un alias de table. Il ne peut pas donner argument à un order by, je crois.
Il faut ordonner sur un champ.

Répondre à gg
Collection CommentÇaMarche.net