Rechercher : dans
Par :

Problème select mysql avec jointures et alias

Dernière réponse le 21 mai 2009 à 20:46:03 shelko, le 21 mai 2009 à 19:18:50 
 Signaler ce message aux modérateurs

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
Configuration: Windows XP
Firefox 3.0.10

Meilleures réponses pour « Problème select mysql avec jointures et alias » dans :
MySQL – Optimisation VoirL’optimisation au niveau de MySQL passe par trois composants, à savoir : Optimisation du serveur MySQL Optimisation de la base de données Optimisation des requêtes Optimisation de la configuration de serveur MySQL L’optimisation du serveur peut...
MySQL - SELECT ... YESTERDAY (hier) VoirIl vous suffit d'utiliser la syntaxe suivante : SELECT * FROM maTable WHERE champ_date = DATE_SUB(CONCAT(CURDATE(), ' 00:00:00'), INTERVAL 1 DAY) De la même façon pour sélectionner les enregistrements d'avant-hier : SELECT * FROM maTable...
Importer et exporter des données sous MySQL VoirImportation et exportation Les Système de Gestion de Bases de Données tels que MySQL permettent de manipuler facilement et avec beaucoup de souplesse un très important volume de données. Toutefois, aussi robuste soit MySQL, il peut être intéressant...
MySQL - Installation sous Windows VoirPrésentation de MySQL MySQL est un Système de Gestion de Bases de Données (SGBD) fonctionnant sous Linux et Windows. Depuis la version 3.23.19, MySQL est sous Licence GPL (aussi bien sous Linux que Windows), ce qui signifie qu'il peut être utilisé...
SQL - Jointures VoirExpression des jointures Une jointure (ou θ-jointure) est un produit cartésien de deux tables. On appelle équijointure une θ-jointure dont la qualification est une égalité entre deux colonnes. En SQL, l'expression d'une jointure se...

1

mype, le 21 mai 2009 à 20:14:11
  • +1

Essaye avec un having

WHERE tag.tag LIKE '%$key%'
HAVING proximite < 1 
ORDER BY proximite 

Répondre à mype

2

shelko, le 21 mai 2009 à 20:34:51

Merci c'est ça.
Mais y a t'il une raison particulière ?

Répondre à shelko

3

 mype, le 21 mai 2009 à 20:46:03

Parce que quand tu veux metre une condition sur une fonction de calcul tu es obligé d'utilisé un HAVING

Répondre à mype