Codeigniter Active Record / MySQL Join Query - 如果其中一个表行不存在,如何返回结果

时间:2013-07-12 23:02:42

标签: php mysql codeigniter join

我有以下查询:

$this->db
     ->select('SQL_CALC_FOUND_ROWS null as rows
        ,table1.*
        ,table2.*
        ,table3.*', FALSE)
     ->from('table1')
     ->where('table1.column1', $user_id)
     ->join('table2', 'table2.column2 = table1.column2')
     ->join('table3', 'table3.column2 = table1.column2')
     ->group_by('table1.column2')
     ->order_by('table1.column2', 'DESC');

 $query = $this->db->get();

问题是,表3中可能没有行,如果没有,我仍然希望返回带有剩余查询数据的结果。有人可以建议如何实现这个目标吗?

2 个答案:

答案 0 :(得分:1)

你应该在table3上进行左连接

答案 1 :(得分:0)

使用左连接并使用group_by获取准确的记录:

$this->db->join('login_ranknames AS t4', 't4.id = t1.rank', 'left');
$this->db->group_by('t4.id');