Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/11/2010, 11:24
Avatar de Nano_
Nano_
 
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 19 años, 1 mes
Puntos: 96
Respuesta: es lo mismo aplicar una condicion en where que en el join?

Saludos

Puntualmente estas son las diferencias

Es mas optimo utilizar

1.

Código MySQL:
Ver original
  1. SELECT t1.*, t2.* FROM tabla1 AS t1
  2. JOIN tabla2 AS t2 ON (t1.id=t2.id)

que

Código MySQL:
Ver original
  1. SELECT t1.*, t2.* FROM tabla1 AS t1 WHERE tabla2 AS t2 ON (t1.id=t2.id)

Ya que en el 1. la tabla esta utilizando los indices de la llave primaria de la tabla mientras que en la segunda no por lo tanto lo haría mas lento

2.

Código MySQL:
Ver original
  1. SELECT t1.*, t2.* FROM tabla1 AS t1
  2. JOIN tabla2 AS t2 ON (t1.id=t2.id)
  3. WHERE t2.zipcode IN(123,234,456,789,159 );

Código MySQL:
Ver original
  1. SELECT t1.*, t2.* FROM tabla1 AS t1
  2. JOIN tabla2 AS t2 ON (t1.id=t2.id AND t2.zipcode IN(123,234,456,789,159 ));

La diferencia de colocar la condición en el WHERE o en el ON, son cosas totalmente distintas ya que en el ON se utiliza solamente para proporcionar la relación entre tablas mientras que el where se asegura que esa consulta siempre se cumpla. Realmente por "debajo" no se bien q ocurre pero por lo que notado es mas confiable coloca siempre todas las condiciones de campos dentro del WHERE
__________________
:.:Nano.:: @nano_hard - Retornando al foro

Última edición por Nano_; 19/11/2010 a las 13:15