sql - MySQL 需要帮助.. 我如何过滤 max(date)

标签 sql mysql syntax max

我有一个这样假设的表

[表一]
用户识别码 | UNAME
------------------
001 |一个
002 |乙
003 | c

[表b]
用户识别码 |日志
----------------------
001 | 2009/08/01
001 | 2009/08/03
003 | 2009/08/02

我想要这样的查询
用户识别码 |最后日志
----------------------
001 | 2009/08/03
002 |空
003 | 2009/08/02

那个结果我已经完成了,但是当我想添加过滤器 laSTLogin 时我遇到了一个问题,假设如果我输入过滤器以显示在“2009/08/03”之前拥有 laSTLogin 的所有用户,我想要这样的结果

UID |最后日志
----------------------
003 | 2009/08/02

这消除了 UID 001,因为 001 在 2009/08/03 上次登录

我像这样使用 sql 命令

SELECT a.uid, max(logs.date)
FROM user a LEFT JOIN logs ON (a.uid = logs.uid)
where max(logs.date)<'2009/08/03'
group by a.uid

我如何添加过滤器以仅显示 2009/08/03 之前的 max(logs.date),因为第 3 行“where max(logs.date)<'2009/08/03' 导致错误 invalid group by功能。 谢谢

最佳答案

试试这个:

SELECT a.uid, max(logs.date)
FROM user a LEFT JOIN logs ON (a.uid = logs.uid)
group by a.uid
having max(logs.date)<'2009/08/03'

关于sql - MySQL 需要帮助.. 我如何过滤 max(date),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1320083/

相关文章:

mysql - SQL-选择不同值的计数

syntax - LDAP 语法/语义 : Filter vs. 基本 DN?

mysql - SQL - 选择最近的前一个日期

html - 如何使 EmailId 验证器忽略 Angular 6 中的大小写?

mysql - 了解mysql内存消耗

mysql - 如何恢复通过在 phpmyadmin 中重命名为相同名称不同大小写而删除的 MariaDB 数据库

sql - 在哪里放置存储过程和交换数据库技术?

mysql - 如何知道SQL中记录的插入日期

sql - 如何从 SQL Server 中的 SELECT 进行更新 - 如果选择返回多个项目(跟进问题 2334712)

syntax - MediaInfo CLI(命令行界面)语法教我一劳永逸