会员
m_id | name | email | mobile | type | is_Approved | is_status
1 | nbvg |as@gmail.com | 9876543212 | 1 | 1 | 1
2 | svfs |cd@gmail.com | 1233123121 | 2 | 1 | 1
3 | aasd |sv@gmail.com | 1233123121 | 2 | 1 | 1
4 | pokg |pk@gmail.com | 1233123121 | 2 | 1 | 1
membership_details
r_id | m_id | duration | date_of_added
1 | 1 | 2018-2019 | 2018-04-01 07:01:16
2 | 2 | 2018-2019 | 2018-04-01 13:11:53
3 | 1 | 2019-2020 | 2019-02-02 02:15:45
4 | 3 | 2018-2019 | 2018-04-01 20:30:10
下面的代码,我正在模型中使用
$get_s_member = array('members.type' =>2,'members.is_Approved'=>1,'members.is_status'=>1);
$this->db->select('*');
$this->db->from('members');
$this->db->join('membership_details', 'members.m_id = membership_details.m_id','LEFT');
$this->db->where($get_s_member);
$this->db->group_by('membership_details.m_id');
$this->db->order_by('membership_details.date_of_added','DESC');
$query = $this->db->get();
$result = $query->result();
// print_r($result);
//echo $this->db->last_query();
if($result)
{
return $result;
}
else
{
return 0;
}
sql查询
SELECT *
FROM `members`
LEFT JOIN `membership_details` ON `members`.`m_id` = `membership_details`.`m_id`
WHERE `members`.`type` = 2
AND `members`.`is_Approved` = 1
AND `members`.`is_status` = 1
GROUP BY `membership_details`.`m_id`
ORDER BY `membership_details`.`date_of_added` DESC
请注意,membership_details表中有一些重复的m_id。因此,我尝试使用group by m_id和desc来获取记录的最后数目,但是我没有得到,而是得到了第一条记录。但是我得到2和3是desc命令。
如何通过添加的最后一条记录进行分组?
我的预期输出是
m_id|name
1 |nbvg | 2019-2020 | 2019-02-02 02:15:45
3 |aasd | 2018-2019 | 2018-04-01 20:30:10
2 |svfs | 2018-2019 | 2018-04-01 13:11:53
4 |pokg | |