Php codeigniter:联接中第二个表的单行
我有两个表:Php codeigniter:联接中第二个表的单行,php,sql,codeigniter,Php,Sql,Codeigniter,我有两个表:user和payment 用户表有3条记录,在付款表中,每条记录都有2条付款记录。我想要用户最后一次付款的详细信息,但是没有得到3行,我只得到1行 $this->db->select('user.*, max(payment.create_at) as last_payment_at'); $this->db->from('user'); $this->db->join('payment','payment.user_id=user.id', 'l
user
和payment
用户
表有3条记录
,在付款
表中,每条记录都有2条付款记录
。我想要用户最后一次付款的详细信息,但是没有得到3行,我只得到1行
$this->db->select('user.*, max(payment.create_at) as last_payment_at');
$this->db->from('user');
$this->db->join('payment','payment.user_id=user.id', 'left');
$this->db->order_by("user.id", "desc");
return $this->db->get()->result_object();
$this->db->select('user.*,max(payment.create_at)作为最后一次付款_at');//如果使用desc和limit 1,则不必将max(payment.create_at)用作最后一次付款
$this->db->from('user');
$this->db->join('payment','payment.user\u id=user.id','left');
$this->db->order_by(“user.id”,“desc”);//如果获得的是最大值,则可以省略此行
$this->db->limit(1);//db->get()->result_object();
尝试添加$this->db->group\u by(user.id);在你的return@JeremyC. 在order子句之前按工作分组,虽然我的不好,但忘记了这一点,将其添加到order子句之前,然后:D@JeremyC. 是的,但这不能解决问题;)你能添加sqlfiddle和你想要的输出吗这仍然只能得到他1行,他需要为每个用户得到1行(总共3行)3条记录就是一个例子…它可以是任何否…我想要用户列表…任何方式我得到我的答案…谢谢你的帮助。。。。。。
$this->db->select('user.*, max(payment.create_at) as last_payment_at'); // you do not have to use max(payment.create_at) as last_payment_at if you are using desc and limit 1
$this->db->from('user');
$this->db->join('payment','payment.user_id=user.id', 'left');
$this->db->order_by("user.id", "desc"); // you can omit this line if you are getting max value
$this->db->limit(1); // <======= add limit for 1
return $this->db->get()->result_object();