我的 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/