Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/08/2011, 16:52
Avatar de SirDuque
SirDuque
 
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Consulta trae 0 resultados

Hola chicos, estoy trabajando en PHP, y para optimizar el tiempo de mis script me recomendaro Optimizar mi consulta SQL con JOIN y me dieron un ejemplo.

Les voy a poner las consultas SQL para ver si me pueden entender...

La primer consulta (SELECT) me trae 12mil registros.

Código MySQL:
Ver original
  1. SELECT periodo,factura,concepto,socio,periodo
  2. FROM concuota_temp
  3. WHERE tipo='SO3' ORDER BY `concuota_temp`.`fecha` DESC;

dentro de un WHILE en php trabajo cada registro.

Código MySQL:
Ver original
  1. SELECT proveedor,socio,importe_factura,fecha_factura,conc epto,cuotas,opera
  2. FROM compraso_temp
  3. WHERE socio='".$r['socio']."' AND factura='".$r['factura']."';

".$r['socio']." & ".$r['factura']." => salen de: $r=mysql_fetch_array( mysql_query ( select sobre tabla: concuota_temp) )

Este me trae 1 registros..

despues hago otro mysql_fetch_array

Código MySQL:
Ver original
  1. SELECT concepto,concepto2,concepto3,concepto4,concepto5,p orcentaje,porcentaje2,porcentaje3,porcentaje4,porc entaje5
  2. FROM proveedor_temp
  3. WHERE id='".$d['proveedor']."'

".$d['proveedor']." => sale de: $d=mysql_fetch_array( mysql_query ( select sobre tabla: compraso_temp) )

Y despus utilizo datos de las 3 consultas para crear un INSERT

Código MySQL:
Ver original
  1. INSERT INTO archivo (`proveedor`,`socio`,`importe`,`fecha`,`hora`,`concepto`,`porcentaje`,`cuotas`,`fecha_venta`,`operador`,`estado`,`proceso`,`periodo`)
  2. VALUES ('".$d['proveedor']."','".$d['socio']."','".$d['importe_factura']."','".$d['fecha_factura']."','10:00:00','".$d['concepto']."','$porcentaje','".$d['cuotas']."','".$d['fecha_factura']."','".$d['opera']."','9','1','".$r['periodo']."')

".$r['periodo']." => sale de: $d=mysql_fetch_array( mysql_query ( select sobre tabla: proveedor_temp) )

y el JOIN que me recomendaro es:

Código MySQL:
Ver original
  1. SELECT concuota_temp.periodo, concuota_temp.factura, concuota_temp.concepto, concuota_temp.socio, concuota_temp.periodo, compraso_temp.proveedor, compraso_temp.importe_factura, compraso_temp.fecha_factura, compraso_temp.cuotas, compraso_temp.opera, proveedor_temp.concepto1, proveedor_temp.concepto2, proveedor_temp.concepto3, proveedor_temp.concepto4, proveedor_temp.concepto5, proveedor_temp.porcentaje1, proveedor_temp.porcentaje2, proveedor_temp.porcentaje3, proveedor_temp.porcentaje4, proveedor_temp.porcentaje5
  2. FROM concuota_temp
  3. JOIN compraso_temp ON concuota_temp.factura = compraso_temp.factura AND concuota_temp.socio = compraso_temp.socio
  4. JOIN proveedor_temp ON proveedor_temp.id = compraso_temp.proveedor
  5. WHERE concuota_temp.tipo = 'S03'
  6. ORDER BY concuota_temp.fecha DESC;

Pero este ultimo me tira 0 resultados por lo tanto 0 INSERT.

Alguien tiene una idea ???
el que entiende PHP ak dejo el tema

__________________
Mono programando!
twitter.com/eguimariano