如何以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)');