转换为Codeigniter查询


Convert to Codeigniter Query

如何以codeigniter格式编写此查询?

SELECT rights_management.id, rights_management.tab_name FROM rights_management 
WHERE rights_management.id NOT IN (SELECT r_m.tabid FROM r_m)

谢谢你的帮助。

您可以使用where子句在CI中编写子查询

$this->db->select('rights_management.id, rights_management.tab_name');
$this->db->from('rights_management');
$this->db->where('`rights_management.id` NOT IN (SELECT r_m.tabid FROM `r_m`)', NULL, FALSE);

首先你必须选择r_m。

从表r_m中取出Tabid并存储到数组中。
 $this->db->select('r_m.tabid');
    $this->db->from('r_m');
    $query = $this->db->get(); 
    $alb = $query->result_array();

创建一个数组

foreach($alb as $rs){
 $not_need[]=$rs['tabid'];
}

之后使用where_not_in.

 $this->db->where_not_in('rights_management.id', $not_need);    
 $this->db->select('rights_management.id, rights_management.tab_name');
 $this->db->from('rights_management');
 $result= $this->db->get();
$this->db->query('SELECT rights_management.id, rights_management.tab_name FROM rights_management WHERE rights_management.id NOT IN (SELECT r_m.tabid FROM r_m)');