3

CODEIGNITER で 1 ~ 3 個のテーブルを結合したい場合、その方法

このクエリでは、1 つのテーブルのみに参加していますが、3 番目、4 番目のテーブルに参加するにはどうすればよいですか

    $this->db->select('*');
    $this->db->from('table1');
    $this->db->join('table1', 'table1.dep_id = table2.dep_id', 'table1.status= 1');
    $this->db->limit(1);
    $this->db->order_by("expiredate", "desc");

    return $this->db->get()->result();

次のような私のテーブル構造

表1

t1_id
t1_name
t2_id
t3_id
t4_id

テーブル2

t2_id
t2_name

テーブル3

t3_id
t3_name

表4

t4_id
t4_name

3番目と4番目に参加するにはどうすればよいですか

よろしくお願いします...

4

2 に答える 2

5

これを試してみてください

$this->db->select('table1.*,table2.t2_name,table3.t3_name,table4.t4_name');
$this->db->from('table1','table2','table3','table4');

$this->db->join('table2', 'table1.t2_id= table2.t2_id');
$this->db->join('table3', 'table1.t3_id= table3.t3_id');
$this->db->join('table4', 'table1.t4_id= table4.t4_id');

return $this->db->get()->result();

または、SQLクエリを使用して結果を取得できます....

$this->db->query($sql)->result();
于 2013-03-30T10:10:07.397 に答える
1

のように同時参加してみてください

$this->db->join('table1', 'table1.t2_id = table2.t2_id', 'table1.status= 1');

その間、table1、table2のいずれかを結合して、table3または4のように結合する必要があります

$this->db->join('table3', 'table1.t3_id = table3.t3_id');
$this->db->join('table4', 'table1.t4_id = table4.t3_id');

さらに、次のようなテーブルを選択する必要があります

$this->db->select('table1.*,table2.*,..');

このように、もう1つのことは、table1とtable2で同じ列がある場合、次のようにエイリアスとして選択する必要があることです

$this->db->select('table1.id as tab1id,table2.id as tab2id');

上記のtable1,2は同じ列名「id」です

于 2013-03-30T09:47:00.167 に答える