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 originalSELECT TOP 1000
BASE_A.CUENTA,
BASE_A.NOMBRE
BASE_A.FECHA_EXP
FROM BASE_A, BASE_B
WHERE BASE_A.CUENTA = BASE_B.CUENTA AND
BASE_B.ESTADO < 3 OR
BASE_B.ESTADO > 4 AND
BASE_A.MONTO > 0
Tiempo: 5 seg
VS
Código SQL:
Ver originalSELECT DISTINCT TOP 1000
BASE_A.CUENTA,
BASE_A.NOMBRE
BASE_A.FECHA_EXP
FROM BASE_A
INNER JOIN BASE_B
ON BASE_A.CUENTA = BASE_B.CUENTA AND
BASE_B.ESTADO < 3 OR
BASE_B.ESTADO > 4 AND
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