我在编写(我认为是)一个复杂的查询时遇到了麻烦。我有一个记录表,其中包含我网站上的所有活动记录。我希望在记录被标记为“标记为删除”之前将记录保留 X 周。此外,我只想为特定的“recs_bus_id”或业务存储 X 条录音。在标记删除之前,每个业务只允许一个帐户的 X 条记录,并且 recs_mark_deletion_time 的时间戳也会更新
这是我的问题,如果不进行大量查询,我不知道该怎么做
录音
recs_id | recs_insert_time | recs_title | recs_bus_id | recs_mark_deletion_time | recs_mark_deletion
业务
bus_id | bus_rec_save_weeks | bus_max_rec_save_count
- bus_max_rec_save_count 是业务允许保存的录音总数
现在我这样做是为了让录音标记为删除
SELECT * FROM recordings JOIN businesses ON Recording.recs_bus_id = Business.bus_id AND Recording.recs_insert_time < NOW() - INTERVAL Business.bus_rec_save_weeks WEEK
- 然后我只是循环遍历结果集并删除每个删除标记
我不知道如何根据“bus_id”获取顶部“bus_max_rec_save_count”之外的记录的结果集以标记删除。