Cuando necesitamos relacionar dos tablas (o más propiamente: dos conjuntos de resultados) podemos hacerlo usando un JOIN implícito o un JOIN explícito.
El JOIN implícito fue establecido en SQL-89 y ocurre cuando a continuación de la cláusula FROM escribimos una coma. La sintaxis es la siguiente:
SELECT Columna1, Columna2, Columna3 FROM Tabla1, Tabla2 WHERE MiCondición
Ejemplo 1:
SELECT PRD_CODSUC, SUC_NOMBRE, PRD_CODIGO, PRD_NOMBRE FROM PRODUCTOS, SUCURSALES WHERE PRD_CODSUC = SUC_CODIGO
El JOIN explícito fue establecido en SQL-92 y ocurre cuando escribimos la cláusula JOIN. La sintaxis es la siguiente:
SELECT Columna1, Columna2, Columna3 FROM Tabla1 JOIN Tabla2 ON MiCondición
Ejemplo 2:
SELECT PRD_CODSUC, SUC_NOMBRE, PRD_CODIGO, PRD_NOMBRE FROM PRODUCTOS JOIN SUCURSALES ON PRD_CODSUC = SUC_CODIGO
Puntos importantes a recordar:
- El JOIN implícito (después del FROM escribir alguna coma) fue establecido en SQL-89, ya es obsoleto y no se recomienda su uso.
- El JOIN explícito (después del FROM escribir JOIN) fue establecido en SQL-92 y es la sintaxis recomendada.
- Tanto si usas el JOIN implícito como el JOIN explícito podrás obtener los mismos resultados cuando en ninguna de las columnas relacionadas hay NULL
- Con el JOIN implícito no se puede hacer OUTER JOIN
- Con el JOIN explícito sí se puede hacer OUTER JOIN
- Es muy mala idea en un solo SELECT mezclar JOINs implícitos con JOIN explícitos. O usas uno o usas el otro, pero nunca uses ambos porque te causará problemas.
Recomendación:
Los SELECTs que ya tienes escritos y que funcionan bien déjalos como están, no los toques, pero en todos los nuevos SELECTs que escribas usa la notación explícita (es decir: escribe la cláusula JOIN) porque es la recomendada y en pocos años ya casi nadie usará la notación implícita. Ya es «del viejazo».
Artículos relacionados:
Ejemplo Nº 001 – Usando INNER JOIN
Ejemplo Nº 002 – Usando INNER JOIN eficientemente
Deja un comentario