mysql - 检索最近的记录

标签 mysql

我的 mysql 查询有点卡住。我需要从表中检索最新记录,并按第二列分组。像这样的事情:

SELECT ca.id, ca.activity_date, cat.contact_id as cid
FROM activity ca
JOIN activity_target cat
  ON ca.id = cat.activity_id
WHERE ca.activity_type_id = 44
GROUP BY cid
ORDER BY activity_date DESC

...除了我需要分组依据内的最新记录(使用activity_date)(排序依据在分组之后执行)。我尝试使用 HAVING Activity_date = max(activity_date) 但这不起作用。

最佳答案

我认为你可以这样做:

SELECT ca.id, ca.activity_date, cat.contact_id as cid
FROM activity ca
JOIN activity_target cat
  ON ca.id = cat.activity_id
WHERE ca.activity_type_id = 44
    and ca.id = (SELECT id from activity a
            join activity_target t on a.id = t.activity_id
        WHERE t.contact_id = cat.contact_id
        ORDER BY activity_date DESC LIMIT 1)
ORDER BY activity_date DESC

如果不查看您的架构,我无法确定,并且我猜测 MySQL 和 Microsoft SQL Server 之间的差异。

关于mysql - 检索最近的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8918511/

相关文章:

mysql - 在mysql中表达两个组合条件

mysql - 将 max_allowed_pa​​cket 添加到 my.cnf 停止 mysql 服务器

c# - 检索最后插入的记录

php - 为什么要使用 num_rows

mysql - 静态选择在哪里

MySql 到 PostgreSql 迁移

java - MySQL 查询 XML 输出

mysql - makefile 错误 ----> make : *** No rule to make target `mysql.h'

PHP代码使用_POST方法在MySql数据库中插入空白记录

php - 优化Json解析