我有一个包含多个用户记录的表,例如他们的登录日期和IP地址。
因此,我希望在过去n
天内获取数据库中每个用户的最后一个IP地址或上次登录日期。
当我尝试在cakephp find中使用"group"
时,它没有显示正确的记录:
$data = $this->Login->find('all',
array(
'conditions'=>array('Login.last_login_date<='=>$d),
'group'=>'Login.user_id',
'order'=>array('Login.last_login_date'=>'DESC'),
'fields' => array('MAX(Login.last_login_date) AS last_login_date', '*','User.*')
)
);
这可能是什么原因?
答案 0 :(得分:0)
通过登录日期desc订购,您走在正确的轨道上。实际上,您不需要在此处找到登录日期的MAX
。如果您想获得上次登录日期,请按登录日期降序排序。分组后的登录日期值是最后一个登录日期。
$data = $this->Login->find('all', array(
// Assuming that the login date column is login_date here
'conditions' => array('Login.login_date <=' => $d),
'group' => 'Login.user_id',
'order' => array('Login.login_date' => 'DESC'),
'fields' => array('*', 'User.*')
));