MySQL 查询最大日期

标签 mysql sql

例如,我有这两个表:

Organiser        Events 
----------       -------
id         1     id
           |__ * organiser_id
                 date
                 status

如何选择状态等于(例如“事件”)的最新事件的所有组织者的 ID。

我想我必须在子查询中使用 max(date) 还是需要使用联接?仍然没有找到解决方案,因此感谢您的帮助!

谢谢

编辑:

我刚刚找到了这个解决方案(不知道这是否是最好的解决方案?):

SELECT o.id, e.date
FROM Organiser o
INNER JOIN events e on e.organiser_id = o.id
WHERE e.date = (SELECT max(date) 
                FROM events e2
                WHERE e2.organiser_id = o.id) 

最佳答案

SELECT
      id
FROM 
      Organiser AS o
WHERE 
      ( SELECT status
        FROM Events AS e
        WHERE e.organiser_id = o.id
        ORDER BY `date` DESC
        LIMT 1
      ) = 'active'

关于MySQL 查询最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7649850/

相关文章:

mysql - 为什么 SQL 声明失败?

mysql - 在 mysql 中尝试从 Latin1 转换为 UTF8 错误时如何修复不正确的字符串值?

php - 从 ARRAY 中保存 SQL 数据,例如 print_r()

sql - 在 django raw sql 中传递列表或元组作为参数

sql - 我如何学习优化 SQL 查询

mysql - 如何在 MySQL 中返回数据透视表输出?

sql - 如何知道a列是否包含所有NULL

mysql - 检查 JOIN 是否存在以及列是否不等于

php - 组合来自不同表、具有不同字段名称的 2 个查询

mysql - 如何创建链接服务器 MySQL