Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/10/2010, 19:55
JonathanB
Usuario no validado
 
Fecha de Ingreso: junio-2010
Ubicación: Guatemala
Mensajes: 196
Antigüedad: 13 años, 10 meses
Puntos: 25
Pregunta Duda Select.. Where vs Inner Join

Saludos compañeros, hoy los quisiera molestar a que me ayudaran a entender el siguiente query.

Tomar en cuenta lo siguiente:
BASE_A tiene 788669 registros y BASE_B tiene 1721


Código SQL:
Ver original
  1. SELECT TOP 1000
  2.         BASE_A.CUENTA,
  3.         BASE_A.NOMBRE
  4.         BASE_A.FECHA_EXP
  5. FROM BASE_A, BASE_B
  6. WHERE   BASE_A.CUENTA = BASE_B.CUENTA AND
  7.         BASE_B.ESTADO < 3 OR
  8.         BASE_B.ESTADO > 4 AND
  9.         BASE_A.MONTO  > 0
Tiempo: 5 seg

VS

Código SQL:
Ver original
  1. SELECT DISTINCT TOP 1000
  2.         BASE_A.CUENTA,
  3.         BASE_A.NOMBRE
  4.         BASE_A.FECHA_EXP
  5. FROM BASE_A
  6. INNER JOIN BASE_B
  7. ON      BASE_A.CUENTA = BASE_B.CUENTA AND
  8.         BASE_B.ESTADO < 3 OR
  9.         BASE_B.ESTADO > 4 AND
  10. WHERE   BASE_A.MONTO  > 0
Tiempo: 0 seg (lo muestra inmediatamente)

Mis dudas son las siguientes:
  • De que manera realiza la consulta el Inner Join para que pueda mostrar la información inmediatamente.
  • Porque necesito usar Distinct en el query de Inner Join.
  • Y la última seria, en que casos se recomienda realmente usar Join vs un simple Select Where.

Muchas gracias por su ayuda