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