只想在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个
提前问候......
答案 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”