0

最新の日付を行 (列ではなく) で選択しようとしています

そのようなテーブルでは、「articles_date_added」または「articles_last_modified」である必要があります

Id | ... | ... | articles_date_added | articles_last_modified | ...

私の実際のクエリは次のようになります。

select 
  a.articles_id, a.authors_id, a.articles_date_added,
  a.articles_last_modified,
  IF(a.articles_last_modified >= a.articles_date_added,
     a.articles_last_modified,
     a.articles_date_added) as latestdate,
  ad.articles_viewed,
  ad.articles_name, ad.articles_head_desc_tag,
  COUNT(vh.articles_id) as total_votes,
  SUM(v.vote_value)/COUNT(v.vote_value) AS vote_avg,
  au.authors_name, td.topics_name, a2t.topics_id 
from
  " . TABLE_ARTICLES . " a
  left join " . TABLE_AUTHORS . " au using(authors_id)
  left join VOTE_HISTORY vh using (articles_id)
  left join VOTE v using (vote_id),
  " . TABLE_ARTICLES_DESCRIPTION . " ad,
  " . TABLE_ARTICLES_TO_TOPICS . " a2t
  left join " . TABLE_TOPICS_DESCRIPTION . " td using(topics_id)
where 
  (a.articles_date_available IS NULL or
  to_days(a.articles_date_available) <= to_days(now())) and
  a.articles_status = '1' and a.articles_id = a2t.articles_id and
  ad.articles_id = a2t.articles_id and
  ad.language_id = '" . (int)$languages_id . "'
  and td.language_id = '" . (int)$languages_id . "'
  and a2t.topics_id = '" . (int)$current_topic_id . "' and
  au.authors_id = '" . (int)$_GET['filter_id'] . "' 
GROUP BY a.articles_id 
ORDER BY latestdate desc

ご覧のとおり、それを選択して使用します

IF(a.articles_last_modified >= a.articles_date_added,
a.articles_last_modified, a.articles_date_added) as latestdate

しかし、それは1054を返します-「注文句の不明な列「最新日」

なんで?

私はMySql 5.0を使用しています。

4

1 に答える 1