在MariaDB/MySQL中,我有一个这样的表:
table (key1, key2, date)INDEX(key1, key2)
现在我想选最古老的条目:

SELECT * FROM `table` ORDER BY `date` ASC LIMIT 1

最后是与第一个查询中的key1key2匹配的所有条目:
SELECT * FROM `table` WHERE `key1` = ? AND `key2` = ?

这可以简化成一个查询吗?

最佳答案

只需使用join

select t.*
from `table` t join
     (select t.*
      from `table` t
      order by `date` asc
      limit 1
     ) tt
     on t.key1 = tt.key1 and t.key2 = tt.key2;

关于mysql - 选择与最旧条目匹配的所有条目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45122399/

10-12 20:53