使用 CodeIgniter 中的 Active Record 类从 4 个表中选择数据
Posted
技术标签:
【中文标题】使用 CodeIgniter 中的 Active Record 类从 4 个表中选择数据【英文标题】:Select data from 4 tables using Active Record Class in CodeIgniter 【发布时间】:2017-09-21 19:15:17 【问题描述】:我想在 codeIgniter 中使用 Active Record 类从 4 个表中选择数据
我的桌子: 老师(id_teacher,姓名) 学生(id_parent,姓名,id_teacher,id_class,id_school) 类(id_class,libelle) 学校(id_school,名称)
这是我的代码:
$this->db->select("t.*, s.*, c.*, sh.*");
$this->db->from("teacher t");
$this->db->join("student s","t.id_teacher=s.id_teacher");
$this->db->join("class c","c.id_class=s.id_class");
$this->db->join("school sh","c.id_school=sh.id_school");
$query = $this->db->get();
但它不起作用。你能帮帮我吗?
【问题讨论】:
你没有返回结果这里是例子codeigniter.com/user_guide/database/results.html 是的,我在“$query”中执行结果...它正在处理 3 个表,但是当我添加最后一个表时它不起作用 这一行缺少双引号$this->db->from("teacher t);
...首先在$this->db->from("teacher t);
中加上右双引号,最后是$this->db->from("teacher t");
谢谢,但在我的代码中我已经完成了双引号,但它不起作用
【参考方案1】:
你有两个 from()
我将第二个替换为 join()
如果您需要特定类型的 JOIN,您可以通过函数的第三个参数指定它。选项有:左、右、外、内、左外和右外。
public function test()
$this->db->select("t.*, s.*, c.*, sh.*");
$this->db->from("teacher t");
// $this->db->join("student s","t.id_teacher=s.id_teacher");
$this->db->join('student s', 's.id_teacher = t.id_teacher' , 'LEFT');
$this->db->join('class c', 'c.id_class = s.id_class', 'LEFT');
// $this->db->from("school sh","c.id_school=sh.id_school");
$this->db->join('school sh' ,"sh.id_school = c.id_school", 'LEFT');
$query = $this->db->get();
return $query->result_array();
【讨论】:
我没有看到 :( !! 我的代码在我只有 3 个表时有效,但是当我添加最后一个“加入”时它不起作用以上是关于使用 CodeIgniter 中的 Active Record 类从 4 个表中选择数据的主要内容,如果未能解决你的问题,请参考以下文章
动态 Active Record 查询中的 Codeigniter 括号
Codeigniter Active Record 中的子查询
CodeIgniter Active Record 中的 SQL 注释?
Where 子句 CodeIgniter 中的 Active Record 问题