Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/10/2010, 09:43
albertius
 
Fecha de Ingreso: marzo-2003
Ubicación: Barcelona
Mensajes: 107
Antigüedad: 21 años, 1 mes
Puntos: 0
Que consulta de las 2 es mejor?

Hola a todos.
Estas dos consultas generan el mismo resultado, una hace tres subconsultas y la otra utiliza LEFT JOIN dos veces y hace una subconsulta.

Cual de las dos es mas eficaz o gasta menos recursos??

1.
$_consulta = sprintf("SELECT emp.value AS empresa, nom.value AS nombre, factura.id_fac, factura.print_fac, factura.num_fac, factura.fecha_creacion_fac, factura.estado_fac, (SELECT sum(pvp_factura_det) FROM conta_detalle_factura WHERE id_factura_det=factura.id_fac) AS pvp FROM conta_facturas AS factura LEFT JOIN profile_values AS emp ON emp.fid=%s && emp.uid=factura.uid_fac LEFT JOIN profile_values AS nom ON nom.fid=%s && nom.uid=factura.uid_fac WHERE factura.uid_fac>1 ".$where." ORDER BY ".$orderBy, $fid,$fnom);

2.
$_consulta = sprintf("SELECT factura.id_fac, factura.print_fac, factura.num_fac, factura.fecha_creacion_fac, factura.estado_fac, (SELECT sum(pvp_factura_det) FROM conta_detalle_factura WHERE id_factura_det=factura.id_fac) AS pvp, (SELECT value FROM profile_values WHERE profile_values.fid=%s && profile_values.uid=factura.uid_fac) AS empresa, (SELECT value FROM profile_values WHERE profile_values.fid=%s && profile_values.uid=factura.uid_fac) AS nombre FROM conta_facturas AS factura WHERE factura.uid_fac>1 ".$where." ORDER BY ".$orderBy, $fid, $fnom);

Un saludo