Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/12/2011, 17h10   #1
Membre habitué
 
Inscription : septembre 2004
Messages : 244
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 244
Points : 110
Points : 110
Par défaut #1054 - Unknown column 'dateRecherche' in 'where clause

Bonjour,

J'ai une erreur sur requête dans laquelle je n'arrive pas à définir un alias:

Requete :

Code :
SELECT (DATE_FORMAT(VISITEDPAGE_DATE_TIME, GET_FORMAT(DATE, 'ISO'))) AS dateRecherche FROM `atelierphp_app_stats_visited_pages`  WHERE dateRecherche=CURRENT_DATE()
Erreur retournée:
#1054 - Unknown column 'dateRecherche' in 'where clause

Savez-vous pourquoi mon alias n'est pas pris en compte ?

Merci beaucoup
omelhor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 18h59   #2
Membre Expert
 
Avatar de kain_tn
 
Homme
Inscription : mars 2005
Messages : 577
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations forums :
Inscription : mars 2005
Messages : 577
Points : 1 209
Points : 1 209
Bonjour,

Tu ne peux pas utiliser d'alias dans la clause WHERE parce que la valeur de ta colonne n'est pas encore déterminée. Si tu veux ajouter une condition sur ton alias tu dois passer par la clause HAVING:

http://dev.mysql.com/doc/refman/5.0/fr/select.html
__________________
Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


Code C :
1
2
3
4
5
6
7
#include <stdio.h>
 
int main(int argc, char **argv) {
 
    printf("So long, and thanks for the fish, Dennis...\n");
    return 0;
}
kain_tn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 19h08   #3
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 331
Points : 18 331
Envoyer un message via MSN à CinePhil
Il serait quand même plus simple de stocker les dates au format standard 'aaaa-mm-jj' !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 19h13   #4
Membre habitué
 
Inscription : septembre 2004
Messages : 244
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 244
Points : 110
Points : 110
Citation:
Envoyé par kain_tn Voir le message
Bonjour,

Tu ne peux pas utiliser d'alias dans la clause WHERE parce que la valeur de ta colonne n'est pas encore déterminée. Si tu veux ajouter une condition sur ton alias tu dois passer par la clause HAVING:

http://dev.mysql.com/doc/refman/5.0/fr/select.html
Ca a marché, merci beaucoup !!!
Code :
1
2
3
4
SELECT *
FROM `atelierphp_app_stats_visited_pages`
HAVING DATE_FORMAT( VISITEDPAGE_DATE_TIME, GET_FORMAT( DATE, 'ISO' ) ) = CURRENT_DATE( )
LIMIT 0 , 30
omelhor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2011, 19h31   #5
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 331
Points : 18 331
Envoyer un message via MSN à CinePhil
Mettez un WHERE au lieu du HAVING et votre requête sera syntaxiquement plus correcte.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2011, 11h01   #6
Membre Expert
 
Avatar de kain_tn
 
Homme
Inscription : mars 2005
Messages : 577
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations forums :
Inscription : mars 2005
Messages : 577
Points : 1 209
Points : 1 209
Citation:
Envoyé par omelhor Voir le message
Ca a marché, merci beaucoup !!!
Code :
1
2
3
4
SELECT *
FROM `atelierphp_app_stats_visited_pages`
HAVING DATE_FORMAT( VISITEDPAGE_DATE_TIME, GET_FORMAT( DATE, 'ISO' ) ) = CURRENT_DATE( )
LIMIT 0 , 30
Euh... En fait le HAVING c'est si tu veux garder l'alias. Sinon tu peux utiliser WHERE...
__________________
Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


Code C :
1
2
3
4
5
6
7
#include <stdio.h>
 
int main(int argc, char **argv) {
 
    printf("So long, and thanks for the fish, Dennis...\n");
    return 0;
}
kain_tn est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h17.


 
 
 
 
Partenaires

Hébergement Web