Mysql соединение для 4 таблицы с несколькими строками в кодингитере

Я хотел бы выполнить mysql соединение для 4 таблицы, вот как они выглядят

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 | [email protected]
|  1232432       | phone | 555-44-333
-------------------------------------

Теперь я хочу выполнить запрос, чтобы найти все детали для студента 1232432 и результат должен быть таким

  • 1 ряд из student_details Таблица
  • 2 ряда от student_subjects Таблица
  • 2 ряда от subject_details Таблица
  • 2 ряда от student_contact_details Таблица

ЗДЕСЬ ЧТО Я СДЕЛАЛ

$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

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]