mysql - sql选择现在之前的最大日期

标签 mysql

我得到的表格中的日期可能早于 now()。我想获得低于 now() 日期的最大值以及相应的行。我试图首先获取 now() 之前的日期,然后从中获取最大值。

我自己想出了:

select sub.*,MAX(sub.DATE)
From (
  SELECT s.id_series,s.name,e.title,e.DATE
  FROM episodes e
  JOIN series s ON s.id_series=e.id_series
  WHERE e.DATE < now()
) as sub
JOIN episodes ep on  sub.id_series=ep.id_series
GROUP BY sub.name;

我只得到正确的最大日期,但相应的行是错误的。有帮助吗?

最佳答案

如果您还想要其余的值,最简单的方法是使用 exists:

SELECT s.id_series,s.name,e.title,e.DATE
FROM episodes e
JOIN series s ON s.id_series=e.id_series
WHERE e.DATE < now() AND NOT EXISTS (
  SELECT *
  FROM episodes e2
  WHERE e2.id_series = e.id_series AND e2.DATE > e.DATE AND e2.DATE < now()
)

如果没有大于当前选中的值且小于now()的值,则为now()之前的最大值。

关于mysql - sql选择现在之前的最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41081504/

相关文章:

mysql - 在java中捕获mysql语句时出错

mysql - phpmyadmin 设置时间戳时区

php - 将多个数组值作为整数插入 - PHP MYSQL

mysql - 无法连接到 GCP 上的云 sql

mysql - 如何展示没有值(value)的数据

mysql - 如何判断一个MySQL进程是否卡住了?

php - 如果我为每个插入请求调用一个方法,我是不是在浪费服务器时间

php - 在 PHP/MySQL 中连接两个表,并在一个表的数据为空而另一个表的数据不为空时显示两个表的元素

mysql 连接多个

mysql log_queries_not_using_indexes 工作错误?