Несколько SQL-соединений из одной таблицы с Codeigniter - PullRequest
5 голосов
/ 05 августа 2011

У меня есть БД с 2 столбцами идентификатора, которые ссылаются на одну и ту же таблицу

Как мне сделать 2 объединения в одну и ту же таблицу и получить данные.

Вотчто у меня есть:

$this->db->select('s.id, c.title, c.description, s.time ,s.day,s.instructor_change,s.studio_change,s.time_change,s.new_class,s.reservation_req,s.easy_does_it,s.mind,s.level,s.duration,s.location,i.first,i.last');
            $this->db->from('schedule as s');
            $this->db->join('instructors as i', 'i.id = s.instructor_id','inner');
            $this->db->join('classes as c', 'c.id = s.class_id');
            $this->db->where('s.active', '1');
            $this->db->where('s.day', $dayofweek);
            $this->db->order_by('s.time',"ASC");

            $query = $this->db->get();

Мне также нужно вытащить что-то вроде этого $ this-> db-> join ('Instructors as i', 'i.id = s._alt_instructor_id ');

Как мне дважды присоединиться к одной и той же таблице, но иметь возможность в этом случае снова ввести имя и фамилию для другого идентификатора в той же записи?

Ответ

$this->db->select('s.id, c.title, c.description, s.time ,s.day,s.instructor_change,s.studio_change,s.time_change,s.new_class,s.reservation_req,s.easy_does_it,s.mind,s.level,s.duration,s.location,i.first,i.last,a.first as alt_first,a.last as alt_last');
            $this->db->from('schedule as s');
            $this->db->join('instructors as i', 'i.id = s.instructor_id','left');
            $this->db->join('instructors as a', 'a.id = s.alt_instructor_id','left');
            $this->db->join('classes as c', 'c.id = s.class_id');
            $this->db->where('s.active', '1');
            $this->db->where('s.day', $dayofweek);
            $this->db->order_by('s.time',"ASC");

            $query = $this->db->get();

Ответы [ 2 ]

6 голосов
/ 05 августа 2011

Просто псевдоним это по-другому:

$this->db->join('instructors as ialt', 'ialt.id = s._alt_instructor_id');
0 голосов
/ 08 июня 2013
$this->db->select('*');
    $this->db->from('jobs');
    $this->db->join('company','company.cmp_name = jobs.cmp_name');
    $this->db->where('company.location', $data['location']);**strong text**
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...