Mysql 在运行WHERE子句之前选择最大(日期)行?
我有一个查询,它回显特定日期之前的所有行Mysql 在运行WHERE子句之前选择最大(日期)行?,mysql,sql,aggregate-functions,Mysql,Sql,Aggregate Functions,我有一个查询,它回显特定日期之前的所有行 SELECT MAX(h.date), h.url FROM HISTORY h WHERE h.uid = '19' AND h.date < (SELECT MAX(t.date) FROM History t WHERE t.url = 'canabalt.com' AND t.uid
SELECT MAX(h.date), h.url
FROM HISTORY h
WHERE h.uid = '19'
AND h.date < (SELECT MAX(t.date)
FROM History t
WHERE t.url = 'canabalt.com'
AND t.uid = '19')
GROUP BY h.url
ORDER BY MAX(h.date) DESC
我的问题是,我必须只选择具有maxDate的行
但是where子句删除了许多可能具有maxDate行的行,然后在其余字段中查找maxDate
如何首先选择maxDate,然后才运行WHERE子句。尝试将您的条件放置在Having子句中,Having子句将在Group By子句之后处理
Select Url, Max(Date) As MaxDate
From History
Where UID = '19'
Group By Url
Having Max( Date ) < (
Select Max( H1.Date )
From History As H1
Where H1.URL = 'canabalt.com'
And H1.UID = '19'
)
Order By Max( Date ) Desc
不太确定您的意思,您必须只选择具有maxDate的行,并在其余字段中查找maxDate。你能举个例子吗?