3

只想在 CODEIGNITER 中加入 1 到 3 个表,怎么做

在这个查询中,我只加入了一个表,我如何加入我的第 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

我怎样才能加入我的第三和第四

提前问好...

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.*,..');

像这种方式,另一件事是如果 table1 和 table2 的任何列相同,那么您需要选择别名

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

在上面的 table1,2 是相同的列名“id”

于 2013-03-30T09:47:00.167 回答