【问题标题】:select the row with most recent date in table formed by using join and group by在使用 join 和 group by 形成的表中选择最近日期的行
【发布时间】:2018-02-07 17:06:13
【问题描述】:

我将加入三个表并应用 group by 来选择每种类型的单个不同行。当我加入表 marketing_follow 时,我有多个条目并选择一个我正在使用 group by 。现在我想在跟进表中选择最近日期的条目。我已经尝试完成这项工作已经有一段时间了,真的需要一些帮助

public function getRegionWiseUserDetails($array){

    $this->db->select('mg.region_name, mu.contact_person, mu.contact_number, mu.status, mu.company_name, mu.user_type, mf.follow_up_date, mf.date, mu.user_id');


   $this->db->from('marketing_users as mu');
    $this->db->join('marketing_group as mg','mg.id = mu.region_id','left');
    $this->db->join('marketing_follow_up as mf','mf.user_id_fk = 
    mu.user_id','left');
   foreach($array as $condition){
       $this->db->or_where('mg.id',$condition);
   }
   $this->db->order_by('mf.follow_up_date','asc');
   $this->db->group_by('mf.user_id_fk');


   $query = $this->db->get();
   return $query->result_array();
  }

【问题讨论】:

  • $this->db->order_by('mf.follow_up_date','desc'); 试试这个
  • 您是否使用数据表来显示所有数据?因为它应该可以正常工作。
  • 我可以编写原始查询,但您(或其他人)必须弄清楚如何将其转换为该框架。如果这是一个解决方案,请参阅meta.stackoverflow.com/questions/333952/…
  • @Strawberry :- 这真的很有帮助。我会尝试为 codeignor 翻译它

标签: php mysql sql codeigniter


【解决方案1】:

您需要按desc 的顺序对日期字段进行排序。同样对于 asc 我们不必将它作为第二个参数传递它默认接受 asc

 $this->db->order_by('mf.follow_up_date','desc');

【讨论】:

    猜你喜欢
    • 2011-08-06
    • 2016-04-27
    • 2018-03-21
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 2023-02-06
    • 1970-01-01
    相关资源
    最近更新 更多