K
https://www.codeigniter.com/userguide2/database/active_record.html It does not have support for UNION, so you only need to write your query and use the ActiveRecord consultation method.It would remain this way:$this->db->query("SELECT p.id_empleado as id,(select 'empleado') as tipo, p.url_imagen, concat_ws(' ',p.nombre,p.paterno,p.materno) as nombre,
e.nombre as empresa,concat_ws(' ',u.nombre,u.apellidos) as solicitante, p.fecha_alta, p.estado
from empleados p inner join usuarios u on p.id_usuario = u.id_usuario
inner join empresas e on u.id_empresa = e.id_empresa
UNION
select p.id_alumno as id,(select 'estudiante') as tipo, p.url_imagen, concat_ws(' ',p.nombre,p.paterno,p.materno) as nombre,
e.nombre as empresa,concat_ws(' ',u.nombre,u.apellidos) as solicitante, p.fecha_alta, p.estado
from estudiantes p inner join usuarios u on p.id_alumno = u.id_usuario
inner join empresas e on u.id_empresa = e.id_empresa");
Another alternative, if you want to keep the standard with ActiveRecord:// #1 SubQueries no.1 -------------------------------------------
$this->db->select("p.id_empleado as id,(select 'empleado') as tipo, p.url_imagen, concat_ws(' ',p.nombre,p.paterno,p.materno) as nombre,
e.nombre as empresa,concat_ws(' ',u.nombre,u.apellidos) as solicitante, p.fecha_alta, p.estado");
$this->db->from('empleados p');
$this->db->join('usuarios u', 'p.id_usuario = u.id_usuario', 'inner');
$this->db->join('empresas e', 'u.id_empresa = e.id_empresa', 'inner');
$query = $this->db->get();
$subQuery1 = $this->db->_compile_select();
$this->db->_reset_select();
// #2 SubQueries no.2 -------------------------------------------
$this->db->select("p.id_alumno as id,(select 'estudiante') as tipo, p.url_imagen, concat_ws(' ',p.nombre,p.paterno,p.materno) as nombre,
e.nombre as empresa,concat_ws(' ',u.nombre,u.apellidos) as solicitante, p.fecha_alta, p.estado");
$this->db->from('estudiantes p');
$this->db->join('usuarios u', 'p.id_usuario = u.id_usuario', 'inner');
$this->db->join('empresas e', 'u.id_empresa = e.id_empresa', 'inner');
$query = $this->db->get();
$subQuery2 = $this->db->_compile_select();
$this->db->_reset_select();
// #3 Union manual --------------------------
$this->db->query("select * from ($subQuery1 UNION $subQuery2) as unionTable");
// #3 Alternativa con ActiveRecord ------------
$this->db->from("($subQuery1 UNION $subQuery2)");
$this->db->get();