0

我在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?

4

1 回答 1

3

您想要实现的 id 对于 mysql 来说是模棱两可的,因为这两个表都有 id 列,因此当您尝试访问时,$Purchase_req->id它将返回最后一个 id 列,该列来自purchase_req您需要为相同列分配唯一别名的表连接表像

$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

于 2013-08-12T20:30:01.247 回答