Multiple Joins in Codeigniter Multiple Joins in Codeigniter codeigniter codeigniter

Multiple Joins in Codeigniter


$this->db->select('*');$this->db->from('TableA AS A');// I use aliasing make joins easier$this->db->join('TableC AS C', 'A.ID = C.TableAId', 'INNER');$this->db->join('TableB AS B', 'B.ID = C.TableBId', 'INNER');$result = $this->db->get();

The join function works like this:join('TableName', 'ON condition', 'Type of join');

The equivilent sql:

SELECT *FROM TableA AS A    INNER JOIN TableC AS C    ON C.TableAId = A.ID    INNER JOIN TableB AS B    ON B.ID = C.ID

I found that writing the SQL first, testing it, then converting to the active record style minimizes error.


$this->db->select('*');$this->db->from('blogs');$this->db->join('comments', 'comments.id = blogs.id');$this->db->join('authors', 'authors.id = comments.author_id');

hopefully you get my example.

Just add another $this->db->join();

For complex queries you might be better off looking at an ORM such as doctrine


$this->db->select('*');$this->db->from('table1');$this->db->join('table2','table1.id=table2.id'); $this->db->join('table3','table2.id=table3.id');$this->db->join('table4','table3.id=table4.id'); $this->db->join('table5','table5.id=table4.id');$this->db->where('table5.id',$this->session->userdata('id'));//getting value from session and match the id of table5 and then show data$data=$this->db->get()->result();//all data store in $data variable