私は次のスクリプトを実行していますWHERE MAXは無視:MySQL - 同じクエリ内のCOUNTとMAX。句
SELECT a.*,
gg.image as 'recent_image_file'
FROM
( SELECT c.cid,
c.category_name AS 'cat_name',
COUNT(g.id) AS image_count,
c.category_image AS 'images',
c.estgendpref,
MAX(n.id) as 'recent_image'
FROM tbl_category c
LEFT JOIN tbl_gallery_category g
ON c.cid=g.cat_id
LEFT JOIN tbl_gallery n
ON n.id=g.image_id
WHERE n.date_active < NOW()
GROUP BY c.cid
ORDER BY c.category_name ASC
) a
INNER JOIN tbl_gallery gg
ON a.recent_image = gg.id;
すべてがMAX(n.id)を除いて細かい戻っているWHERE句を無視し、カテゴリのトップIDを返します。 MAX(n.id)にWHERE句を含む結果セットの最大値を返すにはどうすればよいですか?ありがとう。
「WHERE n.date_active
サブクエリのSELECT句に 'MAX(n.date_active)as max_date'を含めます。それは 'NOW()'よりも大きなものを返しますか? –
@PaulSpiegel - ありがとう。私はそうし、それはない。クエリが期待どおりに実行されているようです。私の悪い。 MAX(id)を使用することは決して理想的ではありませんdate_activeに基づいて最新のIDを返すクエリが必要です。これは必ずしもMAX(id)であるとは限りませんが、希望の結果を達成する方法については考えられませんでした。 –