En utilisant Mysql où dans la clause dans codeigniter
j'ai la requête mysql suivante. Pourriez-vous me dire comment écrire la même requête dans Codeigniter façon ?
SELECT * FROM myTable
WHERE trans_id IN ( SELECT trans_id FROM myTable WHERE code='B')
AND code!='B'
4 réponses
vous pouvez utiliser la méthode sub query de codeigniter pour ce faire, vous devrez Hacker codeigniter. comme ceci
Allez à system/database / DB_active_rec.php
Supprimer le mot-clé public ou protégé de ces fonctions
public function _compile_select($select_override = FALSE)
public function _reset_select()
maintenant subquery écriture dans Disponible Et maintenant voici votre requête avec active record
$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');
Et la chose est faite. Acclamations!!!
Remarque : lors de l'utilisation de sous vous devez utiliser
$this->db->from('myTable')
au lieu de
$this->db->get('myTable')
qui exécute la requête.
Voir aussi
Comment puis-je réécrire ce SQL dans les enregistrements actifs de CodeIgniter?
Note : dans Codeigntier 3 ces fonctions sont déjà publiques donc vous n'avez pas besoin de les pirater.
$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();
essayez celui-ci:
$this->db->select("*");
$this->db->where_in("(SELECT trans_id FROM myTable WHERE code = 'B')");
$this->db->where('code !=', 'B');
$this->db->get('myTable');
Note: $this->db->select("*"); est facultatif lorsque vous sélectionnez toutes les colonnes de la table
essayez ceci:
return $this->db->query("
SELECT * FROM myTable
WHERE trans_id IN ( SELECT trans_id FROM myTable WHERE code='B')
AND code!='B'
")->result_array();
n'Est pas active record, mais est codeigniter façon http://codeigniter.com/user_guide/database/examples.html voir la section requête Standard Avec résultats multiples (version du tableau)