CodeIgniter中关联deliverer与address表查询问题求助
CodeIgniter实现entregador与address表的关联查询
要完成两表关联查询,你可以用CodeIgniter数据库类的join()方法实现。首先确认两个表的关联字段,比如假设entregador(配送员表)有外键字段(如address_id),关联address(地址表)的主键(如id)。
修改你的Model代码如下:
public function SelecionaTodos() { // 按需指定要查询的字段,避免冗余数据 $this->db->select('entregador.*, address.*'); // 指定主表为entregador $this->db->from('entregador'); // 左连接address表,确保无地址关联的配送员也能被查询到 $this->db->join('address', 'entregador.address_id = address.id', 'left'); // 保持原逻辑,限制返回100条数据 $retorno = $this->db->get(100); return $retorno->result(); }
代码说明:
select():可根据业务需求列出具体字段,比如entregador.nome, address.rua, address.numero,避免查询不必要的字段join():第一个参数是关联表名,第二个参数是两表的关联条件,第三个参数是连接类型(left为左连接,还可选择inner、right等,按需调整)- 因为已经用
from()指定了主表,get()方法无需再传入表名,只保留限制条数的参数即可
你的Controller代码不需要修改,调用Model的SelecionaTodos()方法后,返回的结果集会包含两个表的关联数据,直接在视图中使用字段即可。
内容的提问来源于stack exchange,提问作者Claudio Dias
相关产品推荐
相关产品推荐

