Использование предложения Mysql WHERE IN в codeigniter

У меня есть следующий запрос mysql. Не могли бы вы рассказать мне, как написать тот же запрос в Codeigniter?

SELECT * FROM myTable WHERE trans_id IN ( SELECT trans_id FROM myTable WHERE code='B') AND code!='B' 

    Вы можете использовать метод sub query codeigniter, чтобы сделать это для этой цели, вам придется взломать codeigniter. как это
    Перейти к системе / database / DB_active_rec.php Удалить общедоступное или защищенное ключевое слово из этих функций

     public function _compile_select($select_override = FALSE) public function _reset_select() 

    Теперь запись подзапроса в наличии И теперь вот ваш запрос с активной записью

     $this->db->select('trans_id'); $this->db->from('myTable'); $this->db->where('code','B'); $subQuery = $this->db->_compile_select(); $this->db->_reset_select(); // And now your main query $this->db->select("*"); $this->db->where_in("$subQuery"); $this->db->where('code !=', 'B'); $this->db->get('myTable'); 

    И дело сделано. Ура !!!
    Примечание. При использовании подзапросов вы должны использовать

     $this->db->from('myTable') 

    вместо

     $this->db->get('myTable') 

    который запускает запрос.
    Смотрите это тоже

    Как я могу переписать этот SQL-код в Active Records CodeIgniter?

    Примечание. В Codeigntier 3 эти функции уже общедоступны, поэтому вам не нужно их взломать.

     $data = $this->db->get_where('columnname',array('code' => 'B')); $this->db->where_in('columnname',$data); $this->db->where('code !=','B'); $query = $this->db->get(); return $query->result_array(); 

    Попробуй это:

     $this->db->select("*"); $this->db->where_in("(SELECT trans_id FROM myTable WHERE code = 'B')"); $this->db->where('code !=', 'B'); $this->db->get('myTable'); 

    Примечание: $ this-> db-> select (“*”); необязательно, когда вы выбираете все столбцы из таблицы

    попробуй это:

     return $this->db->query(" SELECT * FROM myTable WHERE trans_id IN ( SELECT trans_id FROM myTable WHERE code='B') AND code!='B' ")->result_array(); 

    Не является активной записью, но является способом codeigniter. http://codeigniter.com/user_guide/database/examples.html см. Раздел «Стандартный запрос с несколькими результатами (версия массива)»

    Давайте будем гением компьютера.