如何创建MySQL查询以在单独的表中返回早于预定义日期的记录

如何创建MySQL查询以在单独的表中返回早于预定义日期的记录,mysql,Mysql,我正在为MySQL表创建一个维护查询,需要根据表中的日期字段将记录标记为deletable(将列值从0更新为1) 非常简单,但我的问题是,将记录标记为可删除的标准根据帐户ID(acc_ID列)的不同而不同 例如,该表将包含来自多个帐户的记录(acc_id字段),并且有一个单独的accounts表,其中有一列(retention_age),我需要使用该列来确定是否可以将记录标记为deletable 例如: SELECT * FROM files WHERE DATE(file_downl

我正在为MySQL表创建一个维护查询,需要根据表中的日期字段将记录标记为deletable(将列值从0更新为1)

非常简单,但我的问题是,将记录标记为可删除的标准根据帐户ID(acc_ID列)的不同而不同

例如,该表将包含来自多个帐户的记录(acc_id字段),并且有一个单独的accounts表,其中有一列(retention_age),我需要使用该列来确定是否可以将记录标记为deletable

例如:

SELECT * 
  FROM files 
 WHERE DATE(file_downloaded_date) < DATE_SUB(CURDATE(), INTERVAL 30 DAY)
   AND deleted = 0;
选择*
从文件
其中日期(文件下载日期)
因此,例如,在具有要更新的记录的表中,acc_id=1可能有100条记录,acc_id=2可能有250条记录等等。。。。acc_id 1设置为在14天后将记录标记为可删除,acc_id 2设置为在30天后将记录标记为可删除

我试图弄清楚我是否可以创建一个SQL查询来在一个查询中完成这一切,或者我是否需要为每个帐户创建一个单独的查询

我在想,如果有一种方法可以在内部30天内用每个记录的acc\u id的保留时间值替换“30”,那将是最好的方法,但我不知道如何做,或者这是否会起作用


如果您有任何建议,我们将不胜感激。

您应该能够通过使用获取相应帐户并使用其
保留期作为
间隔来实现这一点:

从文件中删除文件
accounts.id=files.acc\u id上的左连接帐户
哪里
日期(文件下载日期)
刚刚尝试了一下,它似乎可以满足我的需要。