Mysql 表中的SQL列表数据依赖于另一个表中的数据
我正在为一位希望通过即将到来的活动对其数据进行排序的客户编写CMS 有一个名为customers的表,其中包含由cust_id列标识的所有客户 还有一个名为activities的表,其中有一个cust_id列用于将其与客户配对,还有一个date_last_done字段用于指定任务完成的时间。客户可以记录许多活动 我想把最近一次描述活动在11个多月前完成的所有客户都找回来 以下是我的尝试:Mysql 表中的SQL列表数据依赖于另一个表中的数据,mysql,Mysql,我正在为一位希望通过即将到来的活动对其数据进行排序的客户编写CMS 有一个名为customers的表,其中包含由cust_id列标识的所有客户 还有一个名为activities的表,其中有一个cust_id列用于将其与客户配对,还有一个date_last_done字段用于指定任务完成的时间。客户可以记录许多活动 我想把最近一次描述活动在11个多月前完成的所有客户都找回来 以下是我的尝试: SELECT * FROM customers INNER JOIN activit
SELECT
*
FROM
customers
INNER JOIN
activities
ON
activities.cust_id = customers.cust_id
WHERE
(SELECT
date_last_done
FROM
activities
WHERE
cust_id = ???
ORDER BY
date_last_done
DESC)
< date() - 11months
如何编辑查询以实现此目的?使用子查询连接customers表,该子查询返回符合条件的活动的客户
SELECT c.*
FROM customers AS c
JOIN (SELECT cust_id
FROM activities
GROUP BY cust_id
HAVING MAX(date_last_done) < DATE_SUB(NOW(), INTERVAL 11 MONTH)) AS a
ON c.cust_id = a.cust_id
神奇的答案-我以前从未使用过这种逻辑。c.cust_id上的AS a之前缺少括号存在问题。此外,声明函数db.MAX不存在时引发错误?修复了缺少的括号,但不确定该错误。确保在MAX.Spot on之后没有空间。PHPMyAdmin格式化了SQL并在那里添加了一行新行。非常感谢!