我有一个大约有 1000 万行的 mysql 表。
对于每一行,我有一个 id 列和 date 列。 id 列不是唯一的,对于一个 id ,有多行具有不同的 date 值,通常每个 id 有 3-6 个日期。我想为他们的 date 选择具有最新 id 的行。

我的查询:

SELECT   id,
         date
FROM     tab a
WHERE    a.date = (SELECT MAX(date)
                   FROM   tab b
                   WHERE  a.id=b.id)

非常慢,需要几分钟才能完成。感觉这可以做得更快。这里的最佳做法是什么?

最佳答案

为什么不只是?

SELECT   id,
         MAX(date) date
FROM     tab
GROUP BY id;

关于mysql - 子查询很慢,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56060431/

10-14 19:23
查看更多