Codeigniter join 会返回最后一个 id
Posted
技术标签:
【中文标题】Codeigniter join 会返回最后一个 id【英文标题】:Codeigniter join gives last id back 【发布时间】:2019-05-31 05:24:51 【问题描述】:我想从我的表“device_id”中获取 id,但我一直从“inventory”中获取 id,因为它是最后一次加入。
我试图在互联网上查找它,但可以找到 Codeigniter 的解决方案。
$this->db->where('device_id', $this->input->get('device_id'));
$this->db->join('repair_components', 'repair_options.component_id = repair_components.id');
$this->db->join('products', 'repair_options.product_id = products.id');
$this->db->join('inventory', 'repair_options.product_id = inventory.product_id', 'left');
$query = $this->db->get('repair_options');
$this->data['options'] = $query->result();
print_r($this->data['options']);
我想在我的数组 '$this->data['options']' 中获取来自 'device_id' 的 ID。
【问题讨论】:
错误/问题是什么? 问题与joins无关。您实际上并没有从名为“device_id”的表中请求任何列。如果知道表的结构,会更容易提供帮助。 【参考方案1】:为 where 子句中的列提供 table name,并确保 $this->input->get('device_id')
在其中具有价值。
$this->db->join('repair_components', 'repair_options.component_id = repair_components.id');
$this->db->join('products', 'repair_options.product_id = products.id');
$this->db->join('inventory', 'repair_options.product_id = inventory.product_id', 'left');
$this->db->where('table_name.device_id', $this->input->get('device_id'));
$query = $this->db->get('repair_options');
$this->data['options'] = $query->result();
print_r($this->data['options']);
【讨论】:
【参考方案2】:简单但棘手的一个。所有你需要做一些改变..
$this->db->select('*,device_id.id as the_device_id');
$this->db->from('repair_options');
$this->db->where('device_id', $this->input->get('device_id'));
$this->db->join('repair_components', 'repair_options.component_id = repair_components.id');
$this->db->join('products', 'repair_options.product_id = products.id');
$this->db->join('inventory', 'repair_options.product_id = inventory.product_id', 'left');
$query = $this->db->get();
$this->data['options'] = $query->result();
print_r($this->data['options']);
【讨论】:
以上是关于Codeigniter join 会返回最后一个 id的主要内容,如果未能解决你的问题,请参考以下文章
如何在 CodeIgniter 中获取/返回最后插入的 id?
通过 insert_id() 插入数据库表的最后一个 id,而不是从 Codeigniter 中的模型返回到控制器文件
如何使用Codeigniter从Join 2表中获取ID数据?
如何使用 join codeigniter 从另一个表中获取值