Php Codeigniter活动记录/MySQL连接查询-如果其中一个表行不存在,如何返回结果

Php Codeigniter活动记录/MySQL连接查询-如果其中一个表行不存在,如何返回结果,php,mysql,codeigniter,join,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 = tab

我有以下疑问:

$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中可能没有一行,如果没有,我仍然希望返回一个包含剩余查询数据的结果。请有人建议如何实现这一点吗?

您应该在表3上进行左连接

您应该在表3上进行左连接

使用左连接,还可以使用group\U by获得准确的记录:

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

使用left join并使用group_by获得准确记录:

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

谢谢,我试过了,但没有成功表2'返回多行,因此查询不会返回表2的所有行,我已经尝试过了,但没有成功表2'返回多行,因此查询不会返回表2的所有行