vistas vista una otra llamar desde anidadas anidada codeigniter codeigniter-2

una - vista anidada codeigniter



Usando la cláusula WHYS IN de Mysql en codeigniter (4)

Prueba este:

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

Nota: $ this-> db-> select ("*"); es opcional cuando selecciona todas las columnas de la tabla

Tengo la siguiente consulta mysql. ¿Podría decirme cómo escribir la misma consulta en Codeigniter?

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


Puede utilizar la forma de consulta secundaria de codeigniter para hacer esto para este propósito, tendrá que hackear codeigniter. Me gusta esto
Vaya a system / database / DB_active_rec.php Eliminar palabras clave públicas o protegidas de estas funciones

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

Ahora está disponible la subconsulta Y ahora aquí está su consulta con registro activo

$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'');

Y la cosa está hecha. ¡¡¡Aclamaciones!!!
Nota: Al usar sub consultas debe usar

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

en lugar de

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

que ejecuta la consulta.
Mira esto tambien

¿Cómo puedo reescribir este SQL en los registros activos de CodeIgniter?

Nota: En Codeigntier 3 estas funciones ya son públicas, por lo que no es necesario que las piratee.


prueba esto:

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

No es un registro activo, pero es el modo codeigniter http://codeigniter.com/user_guide/database/examples.html vea la sección Consulta estándar con resultados múltiples (versión de matriz)


$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();