1

我有以下查询:

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

4

2 回答 2

1

你应该在 table3 上做一个左连接

于 2013-07-12T23:13:43.433 回答
0

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

$this->db->join('login_ranknames AS t4', 't4.id = t1.rank', 'left');
$this->db->group_by('t4.id');
于 2013-07-13T05:06:26.153 回答