$end_time=date('Y-m-d H:i:s', strtotime("+$value days",strtotime($end_date)));
$ask = array(
'ga.RegisterDate' => array('between', "$st_date,$end_date"),
're.EnterTime' => array('between', "$end_date,$end_time"),
);
$total_keep= $this->model->table('GameScoreInfo')->alias('ga')
->join('RecordUserInout re','ga.UserID = re.UserID','LEFT')->where($ask)->count();
$res=$this->model->table('GameScoreInfo')->getLastSql();
$ress= $this->model->query("select count(*) as amount from GameScoreInfo ga LEFT JOIN RecordUserInout re ON ga.UserID = re.UserID where ga.RegisterDate BETWEEN '2018-07-21 00:00:00' AND '2018-07-22 00:00:00' AND re.EnterTime BETWEEN '2018-07-22 00:00:00' AND '2018-08-21 00:00:00'");
var_dump($total_keep);
var_dump($ress);exit();count运行结果
将上面query中执行的sql语句在navicat中执行,结果如下

数据库中符合要求的也就只有两条,这个18真不知道是哪来的。
不用join查询的时候count结果数目是对的
最佳答案