Mysql连接4个表,在codeingiter中有多行

时间:2017-09-27 18:40:23

标签: php mysql codeigniter-3 jointable

我想为4个表执行mysql连接,这是它们的样子

student_details ,将包含具有唯一值

行的学生详细信息
------------------------------------------
| student_unique | name | age | etc...
------------------------------------------
|  1232432       | ABC  | 23  | xxx
|  1223233       | CDE  | 26  | yyy
------------------------------------------

student_subjects 学生注册的科目列表

-------------------------------
| student_unique | subject_id |
-------------------------------
|  1232432       | 25         |
|  1232432       | 26         |
-------------------------------

subject_details 主题详情

-------------------------------
| subject_id | subject_name   |
-------------------------------
|  25        | chemistry      |
|  12        | english        |
-------------------------------

Student_contact_details 学生联系方式列表

-------------------------------------
| student_unique | key   | value    |
-------------------------------------
|  1232432       | email | a@b.com
|  1232432       | phone | 555-44-333
-------------------------------------

现在我想运行查询以查找学生1232432的所有详细信息,结果应该是这样的

  • 来自 student_details
  • 的1行
  • 来自 student_subjects
  • 的2行
  • 来自 subject_details
  • 的2行
  • 来自 student_contact_details
  • 的2行

这就是我做的事情

$this->db->select(
                'a.student_unique,
                a.name,
                b.student_unique,
                b.subject_id,
                c.subject_id,
                c.subject_name,
                d.student_unique,
                d.key,
                d.value,'
            );
            $this->db->from('student_details a');
            $this->db->join('student_subjects b', 'b.student_unique = a.student_unique', 'left');
            $this->db->join('subject_details c', 'c.subject_id = b.subject_id', 'left');
            $this->db->join('student_contact_details d','d.student_unique = b.student_unique', 'right');
            $this->db->where('a.student_unique',$student_unique);
            $query = $this->db->get(); 

0 个答案:

没有答案