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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : MySQL a répondu Unknown column 'ddd' in 'where clause'

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

par xmach » 21 avr. 2010, 14:11

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

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

par Yosh » 21 avr. 2010, 14:09

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'

par stealth35 » 21 avr. 2010, 14:08

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

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

par xmach » 21 avr. 2010, 14:03

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.