如何获得添加了最后一条记录的分组?

时间:2019-02-24 08:45:04

标签: php mysql codeigniter-3

会员

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   |           |     

0 个答案:

没有答案