Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/09/2011, 18:01
javiDP
 
Fecha de Ingreso: febrero-2008
Ubicación: Sevilla
Mensajes: 91
Antigüedad: 16 años, 10 meses
Puntos: 15
Respuesta: Diferencia entre Subconsulta y JOIN

No he probado cual es mas optimo, pues cuando se me da un caso como el tuyo uso join casi siempre, mas que nada porque si por cualquier casualidad el campo por el que uno las tablas (en tu caso id) se repite en las tablas de las subconsultas (por ser una clave primeria de mas de un campo, o ser una cadena...etc), las subconsultas te devolveran 2 o mas registros para 1 fila y petara.

Ejemplo:

tabla_a
id 1

tabla_b
id 1 elemento 1
id 1 elemento 2

select id, (select elemento from tabla_b where tabla_a.id = id) from tabla_a where id = 1

Resultado: Catastrofe en la subconsulta (devuelve mas de un campo)

Con el join simplemente haria esto:

1, elemento 1
1, elemento 2

Otra cosa es que pusieras un limit = 1 en las subconsultas...entonces si, pero no tendria en cuenta el elemento 2.

Ya por curiosidad, prueba a hacer un explain a tu consulta y a la misma con join, y mira los resultados a ver cual es mas optima...aunque si no tienes muchos registros apenas habra variacion entre uno u otro.

Un saludo!