Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/01/2013, 11:15
DoHITB
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 7 meses
Puntos: 33
Respuesta: Inner join o filtro con "OR"

Buenas,

Ya se que puedo usar el join para hacerlo todo en una sola consulta (lo puse en el primer post )

La cosa es que por temas con PHP me es más cómodo hacerlo en varios select, aunque no sea tan eficiente que al hacerlo de un solo select (en este caso tendría que iterar el select con join para separar campos en agrupaciones, y luego volver a iterar por las agrupaciones y volver...)

Lo que quiero saber es si teniendo la lista de los campos me saldría más óptimo elaborar una consulta con esos datos o hacerla de nuevo con un join.

Digamos

Código MySQL:
Ver original
  1. -- select1:
  2. select t1.campo1, t2.campo1, t2.campo2
  3. from tabla1 t1
  4. inner join tabla2 t2 on  t1.campo1 = t2.campo3
  5. inner join tabla3 t3 on t3.campo1 = t1.campo1 and t3.campo2 = $var
  6.  
  7. -- rutinas PHP en las que quedarán almacenados todos los datos
  8.  
  9. -- select2:
  10. select t1.campo1, t4.campo1, t4.campo2
  11. from tabla1 t1
  12. inner join tabla4 t4 on  t1.campo1 = t4.campo3
  13. inner join tabla3 t3 on t3.campo1 = t1.campo1 and t3.campo2 = $var

vs

Código MySQL:
Ver original
  1. -- select1
  2. -- rutinas PHP en las que quedarán almacenados todos los datos
  3. -- (nueva) rutina PHP en la que obtengo la lista $lista, que sería, por ejemplo:
  4.  
  5. -- $lista = "1 or t4.campo3 = 2 or t4 = 3"
  6.  
  7. select t4.campo1, t4.campo2
  8. from tabla4 where t4.campo3 = $lista

Espero haber sido más claro ahora

Saludos!