Php 如果在表1中创建的时间超过31天,则要删除的查询

Php 如果在表1中创建的时间超过31天,则要删除的查询,php,mysql,sql,Php,Mysql,Sql,我有两个表,一个是posts,另一个是recent\u view这两个表都有日期作为当前时间戳 (职位)已创建 及 (最近查看)有日期 我希望通过比较(posts)表中的记录来删除(最近查看的)中的所有记录,如果创建日期早于31天,则从最近查看的表中删除这些记录 模式 -- -- Table structure for table `recent_viewed` -- CREATE TABLE IF NOT EXISTS `recent_viewed` ( `id` int(11)

我有两个表,一个是
posts
,另一个是
recent\u view
这两个表都有日期作为当前时间戳

(职位)已创建

(最近查看)有日期

我希望通过比较(posts)表中的记录来删除(最近查看的)中的所有记录,如果创建日期早于31天,则从最近查看的表中删除这些记录

模式

    --
-- Table structure for table `recent_viewed`
--

CREATE TABLE IF NOT EXISTS `recent_viewed` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `postID` int(11) NOT NULL,
  `memberID` int(11) NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Dumping data for table `recent_viewed`
--

--
-- Table structure for table `posts`
--

CREATE TABLE IF NOT EXISTS `posts` (
  `postID` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(70) NOT NULL,
  `name` varchar(32) NOT NULL,
  `city` varchar(32) NOT NULL,
  `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`postID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Dumping data for table `posts`
--
PS:我不擅长,这就是为什么我请求这个帮助的原因。我非常感谢你


谢谢

这不是一个有效的解决方案,但是一个简单的解决方案肯定会帮助您:

delete from recent_viewed where postID in (
select postID from posts where abs(datediff(CURRENT_TIMESTAMP,posts.created)) > 31);

请提供模式设计,以获得更好的答案。您好,我在第一篇文章中发表了editingtry做一个连接,我建议发布一些示例数据和预期结果,这就是我寻求帮助的原因感谢alot mate的帮助。非常感谢你的好意