我在codeigniter中有一个活动记录查询的代码:
$this->db->join('user', 'user.id = purchase_req.owner_id', 'inner');
$this->db->where('user.employer_id', $User->employer_id);
$Purchase_req = $this->Purchase_req->find();
在没有join语句的视图中,$Purchase_req->id
将返回实际的购买请求ID。在具有联接的视图中,$Purchase_req->id
返回用户ID。我如何一起加入表格,仍然可以获得购买请求ID,而不是更改为user.id?
答案 0 :(得分:3)
你想要实现的id是mysql的模糊,因为这两个表都有id列,因此当你试图访问$Purchase_req->id
时,它将返回来自purchase_req
的最后一个id列表,您需要为连接表中的相同列添加唯一别名,如
$this->db->select('`user`.*,`purchase_req`.*,`user`.id AS user_id')
$this->db->join('user', 'user.id = purchase_req.owner_id', 'inner');
$this->db->where('user.employer_id', $User->employer_id);
$Purchase_req = $this->Purchase_req->find();
现在,当您回显$Purchase_req->user_id
时,它将返回user.id