在此查询多表中加入codeigniter表

时间:2013-03-30 09:41:45

标签: php mysql codeigniter

只想在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

我如何加入我的第3和第4个

提前问候......

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:1)

尝试同步加入,如

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

同时你需要加入table1,tabl2中的任何一个来加入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');
上面表1,2中的

是相同的列名“id”