2011-08-05 10 views
5

के साथ एक ही मेज से शामिल रहा है कि एक ही तालिका को देख आईडी 2 कॉलम के साथ एक DB हैएकाधिक एसक्यूएल Codeigniter

मैं कैसे करूँ 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-> में शामिल होने के ('प्रशिक्षकों के रूप में मैं', '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(); 

उत्तर

6

बस इसे उर्फ ​​अलग ढंग से:

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

जब यह बुला मैं एक वाम उपयोग कर रहा हूँ में शामिल होने के बाद से इस आईडी अशक्त हो सकता है। जब मैं इसे SELECT में डालता हूं, जब मैं इसे उपनाम करने का प्रयास करता हूं, तो मुझे उपनाम नाम – matthewb

+0

पर एक अपरिभाषित अनुक्रमणिका मिलती है, मैं इसे आपकी सहायता से प्राप्त करने में सक्षम था, मेरे पास चयन विवरण में एक कॉमा था – 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**