Tengo la siguiente situación: estoy usando dos consultas que responde a una misma relación pero la condición del Where es distinta. El resultado de estas dos consultas lo tengo que mostrar en una sola tabla, por lo que estoy ejecutando las dos consultas dentro de un while y uniendo los dos array con un array_marge().
El problema se me esta presentado cuando muestro los registro, ya que una consulta me devuelve más que la otra y solo se me muestra hasta la cantidad de registros menor y lo que necesito es que siempre se me muestren todos los registros por la consulta que más tenga. A continuación les dejo el código para ver si me pueden ayudar.
Gracias.
El problema se me esta presentado cuando muestro los registro, ya que una consulta me devuelve más que la otra y solo se me muestra hasta la cantidad de registros menor y lo que necesito es que siempre se me muestren todos los registros por la consulta que más tenga. A continuación les dejo el código para ver si me pueden ayudar.
Gracias.
Código [Seleccionar]
$query = $this->db->query("SELECT reporte_nomnia.*,
(SELECT CONCAT(`tipo_asist`.`nombre_cor`,' ',`tipo_asist`.`nombre`) FROM `tipo_asist` WHERE `tipo_asist`.`idempresa` = `reporte_nomnia`.`idempresa` AND `tipo_asist`.`nombre_cor` = `reporte_nomnia`.`concepto`) AS codigo,
(SELECT COUNT(`asistencia`.`id`) FROM asistencia INNER JOIN empleado ON asistencia.id_empl = empleado.id_empl INNER JOIN tipo_asist ON asistencia.id_tipoasist = tipo_asist.id WHERE `tipo_asist`.`nombre_cor` = `reporte_nomnia`.`concepto` AND empleado.id_empl = `reporte_nomnia`.`idempleado` AND fecha_ent >= `periodo`.`fecha_inicio` AND fecha_ent <= `periodo`.`fecha_final` GROUP bY `empleado`.`id_empl` ) As relojdias,
CONCAT(`empleado`.`nombre`,' ', `empleado`.`apellidos`) AS nomb
FROM reporte_nomnia INNER JOIN `empleado` ON `empleado`.`id_empl` = `reporte_nomnia`.`idempleado` INNER JOIN `periodo` ON `periodo`.`id` = `reporte_nomnia`.`idperiodo` WHERE 1 " . $search . $ordenby . " LIMIT " . $init . "," . $reg . "");
$query2 = $this->db->query("SELECT reporte_nomnia.dh AS dh2,reporte_nomnia.importe AS importe2
FROM reporte_nomnia INNER JOIN `empleado` ON `empleado`.`id_empl` = `reporte_nomnia`.`idempleado` INNER JOIN `periodo` ON `periodo`.`id` = `reporte_nomnia`.`idperiodo` WHERE 1 " . $search2 . $ordenby . " LIMIT " . $init . "," . $reg . "");
while ($list = $query->fetch_assoc() and $list2 = $query2->fetch_assoc()) {
$this->aplicacion[] = array_merge($list, $list2);
}
return $this->aplicacion;