2011-08-05 47 views
5

Tôi có một DB có 2 cột ID tham chiếu cùng một bảngNhiều kết nối SQL từ cùng một bảng với Codeigniter

Làm cách nào để thực hiện 2 lần tham gia vào cùng một bảng và có thể lấy dữ liệu.

Dưới đây là những gì tôi có:

$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(); 

tôi cũng cần phải kéo một cái gì đó như thế này $ this-> db-> join ('giáo viên hướng dẫn như i', 'i.id = s._alt_instructor_id ');

Làm cách nào để tham gia cùng một bảng hai lần, nhưng có thể kéo lại trong trường hợp này tên và họ cho một ID khác trên cùng một bản ghi?

trả lời

$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(); 

Trả lời

6

Chỉ cần bí danh một cách khác:

$this->db->join('instructors as ialt', 'ialt.id = s._alt_instructor_id'); 
+0

khi gọi nó Tôi đang sử dụng một LEFT tham gia, kể từ ID này có thể là null. Khi tôi đặt điều này vào SELECT, khi tôi cố gắng để bí danh này, tôi nhận được một chỉ số không xác định trên tên bí danh – matthewb

+0

Tôi đã có thể nhận được nó với sự giúp đỡ của bạn, tôi đã có một dấu phẩy ra khỏi chỗ trong tuyên bố chọn – matthewb

0
$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** 
Các vấn đề liên quan