Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取不使用';在过去的两个月里,我没有访问过mysql_Mysql_Sql - Fatal编程技术网

如何获取不使用';在过去的两个月里,我没有访问过mysql

如何获取不使用';在过去的两个月里,我没有访问过mysql,mysql,sql,Mysql,Sql,我有两个表,一个用于保存用户会话值,另一个用于保存用户会话访问日志。当用户第一次访问时,我保存会话值,之后我只将该会话的访问保存在visitlog表中,并带有日期和时间。现在我需要得到那些在过去两个月内没有访问过的会话记录 usersessionlog sessionid sessionval1 sessionval2 visitid sessionid visitdatetime usersessionvisitlog sessionid sessionval1 sessionval2

我有两个表,一个用于保存用户会话值,另一个用于保存用户会话访问日志。当用户第一次访问时,我保存会话值,之后我只将该会话的访问保存在visitlog表中,并带有日期和时间。现在我需要得到那些在过去两个月内没有访问过的会话记录

usersessionlog

sessionid
sessionval1
sessionval2
visitid
sessionid
visitdatetime
usersessionvisitlog

sessionid
sessionval1
sessionval2
visitid
sessionid
visitdatetime
如何使用mysql查询获取这些记录。

试试这个查询

select * from usersessionlog where sessionid not in( select sessionid from where visitdatetime >=DATE_SUB(CURDATE(), INTERVAL -2 month))
用途不存在

select t1.sessionid from usersessionlog as t1 where not exists
(select * from usersessionvisitlog as t2 where t1.sessionid =t2.sessionid
 and visitdatetime>=date_add(current_date,interval -2 month))

如果您也使用了当前日期,那么将其与访问日期进行比较,您可以看到访问日期超过2个月

您可能需要查看月份的细分情况,以查看每个月有多少天,或者您可以使用“月份”部分查看它们是否相隔两个月使用“左联接”:

select sessionid from usersessionlog sl left join usersessionvisitlog vl 
  on sl.sessionid = vl.sessionid and visitdatetime > now() - interval 2 month
where vl.sessionid is null
通常在MySQL中,
join
子句中的
工作得更快