phpmysqlcodeigniteractiverecordleft-join

Convert SELECT query with LEFT JOIN, WHERE and ORDER BY to CodeIgniter's active record


How can I write this query using CodeIgniter's query builder methods?

SELECT M. * , P.name as page_name 
FROM omc_menu AS M
LEFT JOIN omc_page AS P ON M.page_id = P.id
WHERE M.parentid ='0'
ORDER BY  `M`.`parentid`,`M`.`order` ASC

Solution

  • You could do something like this. You can find more help in the CI docs

    $this->db->select('M.*, p.name as page_name', FALSE);
    $this->db->from('omc_menu as M');
    $this->db->join('omc_page as P', 'M.page_id = P.id', 'left');
    $this->db->where('M.parentid', '0', FALSE);
    $this->db->order_by('M.parentid,M.order','ASC');