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 に答える