Page 1 sur 1

MySQL a répondu Unknown column 'ddd' in 'where clause'

Posté : 21 avr. 2010, 14:03
par xmach
Bonjour je ne comprend pas pourquoi je n'arrive pas a recuperer mon alias sur cette requete mysql :
SELECT news.titre, max( news_diff.date_diff ) AS ddd
FROM `news`
JOIN news_diff ON ( news_diff.id_news = news.id )
WHERE ddd <= current_date( )
GROUP BY news.id
LIMIT 0 , 30 
Mysql me renvois systematiquement : #1054 - Unknown column 'ddd' in 'where clause'

Quelqu'un peut t'il m'expliquer pourquoi ?
Merci à vous.

Re: MySQL a répondu Unknown column 'ddd' in 'where clause'

Posté : 21 avr. 2010, 14:08
par stealth35
parce que c'est pas possible ;)
WHERE max( news_diff.date_diff ) <= current_date( )
Notez que ANSI SQL ne vous permet pas de vous référer à un alias dans une clause WHERE. Il en est ainsi car lorsque le code de WHERE est exécuté, la valeur de la colonne ne peut pas encore être déterminée
http://dev.mysql.com/doc/refman/5.0/fr/ ... alias.html

Re: MySQL a répondu Unknown column 'ddd' in 'where clause'

Posté : 21 avr. 2010, 14:09
par Yosh
parce que c'est pas possible ;)
WHERE max( news_diff.date_diff ) <= current_date( )
ou avec HAVING (sur champs dynamique)

Re: MySQL a répondu Unknown column 'ddd' in 'where clause'

Posté : 21 avr. 2010, 14:11
par xmach
SELECT news.titre, max( news_diff.date_diff ) AS ddd
FROM `news`
JOIN news_diff ON ( news_diff.id_news = news.id )
GROUP BY news.id
HAVING ddd <= current_date( )
LIMIT 0 , 30
Exactement, je viens de voir mon erreur au moment ou j'ai envoyé le message après 30 minutes de galères idiotes de ma part :(

Ca fonctionne parfaitement avec HAVING