2011-08-05 14 views
5

Tengo una base de datos con 2 columnas de ID que hacen referencia a la misma mesaSQL varias combinaciones de misma mesa con CodeIgniter

¿cómo lo hago 2 se une a la misma mesa, y ser capaz de extraer los datos.

Aquí es lo que tengo:

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

que tenga que tirar también algo como esto $ this-> db-> join ('instructores, i', 'i.id = s._alt_instructor_id ');

¿Cómo me uno a la misma tabla dos veces, pero puedo volver a utilizar el nombre y apellido en este caso para una identificación diferente en el mismo registro?

respuesta

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

Respuesta

6

Sólo alias de otra manera:

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

cuando se llama a que estoy usando una combinación izquierda, ya que esta identificación puede ser nulo. Cuando pongo esto en SELECT, cuando intento alias esto, obtengo un índice indefinido en el nombre de alias – matthewb

+0

Pude obtenerlo con su ayuda, tenía una coma fuera de lugar en la declaración seleccionada – 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** 
Cuestiones relacionadas