CodeIgniter Active Records当前不支持子查询,但我使用以下方法:#Create where clause$this->db->select('id_cer');$this->db->from('revokace');$where_clause = $this->db->_compile_select();$this->db->_reset_select();#Create main query$this->db->select('*');$this->db->from('certs');$this->db->where("`id` NOT IN ($where_clause)", NULL, FALSE);_compile_select()和_reset_select()是两个未记录的(AFAIK)方法,它们编译查询并返回sql(不运行它)并重置查询。在主查询中,where子句中的FALSE告诉codeigniter不要转义查询(或添加反引号等),这会弄乱查询。(NULL只是因为where子句有一个我们没有使用的可选第二个参数)但是,您应该知道_compile_select()和_reset_select()不是文档化的方法,在将来的版本中可能会出现功能(或存在)的变化。