¿Por qué deberías usar JOIN en lugar de FROM tabla1, tabla2 con condiciones en WHERE
Cuando escribimos consultas SQL que involucran varias tablas, existen dos enfoques comunes para realizar combinaciones (joins) entre ellas:
1. JOIN explícito (moderno y recomendado):
SELECT *
FROM empleados e
JOIN departamentos d ON e.id_departamento = d.id;
2. JOIN implícito (forma antigua):
SELECT *
FROM empleados e, departamentos d
WHERE e.id_departamento = d.id;
Aunque ambos métodos pueden producir los mismos resultados, usar JOIN
explícito es la práctica recomendada. Aquí te explicamos por qué:
1. Claridad y legibilidad
El uso de JOIN
deja explícita la intención del programador: combinar datos entre tablas mediante una condición clara.
Comparación:
-- JOIN explícito
FROM empleados e
JOIN departamentos d ON e.id_departamento = d.id
-- JOIN implícito
FROM empleados e, departamentos d
WHERE e.id_departamento = d.id
Con más tablas, el estilo implícito se vuelve difícil de leer y mantener.
2. Separación de responsabilidades: combinación vs. filtrado
Con JOIN
, las condiciones de unión van en ON
, y los filtros en WHERE
. Esto mejora la comprensión y evita errores como olvidar una condición de unión.
3. Evita productos cartesianos accidentales
Si olvidas una condición en el estilo implícito, puedes crear un producto cartesiano por accidente:
SELECT *
FROM empleados e, departamentos d;
Esto combinará todas las filas de ambas tablas, lo cual rara vez es lo que se desea.
4. Compatibilidad con OUTER JOIN
El estilo con FROM ... WHERE ...
no permite correctamente LEFT, RIGHT o FULL JOIN.
SELECT *
FROM empleados e
LEFT JOIN departamentos d ON e.id_departamento = d.id;
Esto es imposible de hacer con el estilo antiguo sin JOIN.
5. Mejor soporte por los optimizadores de consultas
Los motores SQL modernos analizan mejor las consultas estructuradas con JOIN
, permitiendo optimizaciones más eficientes.
🔚 Conclusión
Aunque el estilo implícito aún funciona, su uso está desaconsejado.
Usar JOIN
te da:
- Mayor claridad y mantenimiento.
- Separación entre unión y filtros.
- Soporte completo para combinaciones externas.
- Menos riesgo de errores y resultados inesperados.
En resumen:
Siempre que necesites unir tablas, usaJOIN
explícito. Es más claro, más seguro y más flexible.
Comentarios
Publicar un comentario