Problème select mysql avec jointures et alias

Résolu/Fermé
shelko Messages postés 67 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 27 avril 2013 - 21 mai 2009 à 19:18
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 - 21 mai 2009 à 20:46
Bonjour,
J'ai une requête mysql qui est jointe sur 3 table avec un alias qui fonctionne pas mal (sans le "AND proximite < 1") . Mais je souhaite apporter une restriction à l'alias et là tout se complique.
Voici ma requête :
$reqsel2="SELECT societe.soc, societe.descsoc, societe.villesoc, ville.zip,ville.ville,(6366*acos(cos(radians('$lat'))*cos(radians(`ville`.`latitude`))*cos(radians(`ville`.`longitude`)-radians('$long'))+sin(radians('$lat'))*sin(radians(`ville`.`latitude`)))) 
AS proximite 
FROM societe
 INNER JOIN ville ON societe.villesoc=ville.idville 
INNER JOIN tag ON tag.idsoc=societe.idsoc 
WHERE tag.tag LIKE '%$key%'
AND proximite < 1 
ORDER BY proximite 
LIMIT 0,20";


J'ai un message d'erreur qui me dit que proximite (mon alias) n'est pas dans mes tables de bdd alors que si je supprime le "AND proximite < 1" cela fonctionne nickel.

Donc si quelqu'un a une idée je suis preneur car là je sèche.
Merci d'avance

3 réponses

mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
21 mai 2009 à 20:14
essaye avec un having
WHERE tag.tag LIKE '%$key%'
HAVING proximite < 1 
ORDER BY proximite 
1
shelko Messages postés 67 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 27 avril 2013
21 mai 2009 à 20:34
Merci c'est ça.
Mais y a t'il une raison particulière ?
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
21 mai 2009 à 20:46
parce que quand tu veux metre une condition sur une fonction de calcul tu es obligé d'utilisé un HAVING
0