我有一个查询,该查询从名为“ customers”的表中返回每个CustomerID的最新日期时间。表中有许多不同的CustomerID条目,许多行具有相同的CustomerID但具有不同的datetime条目。我一直在使用下面的查询,该查询针对每个唯一的CustomerID返回一行,并显示该CustomerID的最新(MAX)日期。该表大约有6000行。
客户表:
CustLogID (Primary key, INT 11)
CustomerID (INT 11)
DateTime (DATETIME)
查询:
SELECT
CustomerID AS custid,
DateTime AS latestdatetime
FROM customers WHERE DateTime IN (
SELECT MAX( DateTime )
FROM customers GROUP BY CustomerID
)
ORDER BY CustomerID
我遇到的麻烦是,在具有本地MySQL DB的开发机上,它在一秒钟内返回结果(大约1500行),但是在我的Web主机上,它却永远无法完成任务,相同的PHP脚本,相同的数据库数据库位于Web主机服务器上的数据。Web主机上的所有其他脚本运行良好,其中一些脚本也非常复杂。
如果有人知道为什么这个查询会导致这样的瓶颈或可以重构它,我将不胜感激。
谢谢。
使用IN
或毫无意义,可以使用JOIN
以下方法简单地解决此问题:
SELECT
CustomerID custid,
MAX(DateTime) latestdatetime
FROM customers
GROUP BY CustomerID
ORDER BY CustomerID
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句