Palabra clave MySQL ON
La palabra clave `ON` en MySQL se utiliza para especificar la condición para unir tablas en una cláusula `JOIN`. Define cómo deben relacionarse dos tablas indicando los campos comunes entre ellas.
Utilización
La palabra clave `ON` se utiliza principalmente en las operaciones `JOIN` para establecer la condición para fusionar tablas. Sigue directamente a la palabra clave `JOIN` para establecer el enlace entre las tablas.
SELECT columns
FROM table1
JOIN table2
ON table1.column_name = table2.column_name;
En esta sintaxis, `ON nombre_columna.tabla1 = nombre_columna.tabla2` especifica la condición por la que se unen las tablas. La palabra clave `ON` se puede utilizar con todos los tipos de uniones, como `INNER JOIN`, `LEFT JOIN`, `RIGHT JOIN`, etc.
Ejemplos
1. Condición básica de la unión
SELECT employees.first_name, departments.department_name
FROM employees
JOIN departments ON employees.department_id = departments.department_id;
En este ejemplo, la palabra clave `ON` especifica que las tablas `employees` y `departments` deben unirse cuando sus campos `department_id` coincidan.
2. Adhesión con condiciones adicionales
SELECT orders.order_id, customers.customer_name
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id AND customers.status = 'active';
Esta consulta utiliza la palabra clave `ON` con una condición adicional para unir sólo clientes activos con pedidos.
3. Unirse uno mismo
SELECT a.employee_id, a.first_name, b.first_name AS manager_name
FROM employees a
JOIN employees b ON a.manager_id = b.employee_id;
Este ejemplo muestra una autounión, utilizando la palabra clave "ON" para relacionar a los empleados con sus jefes dentro de la misma tabla.
4. Ejemplo de LEFT JOIN
SELECT employees.first_name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.department_id;
Este ejemplo muestra cómo se utiliza la palabra clave `ON` con un `LEFT JOIN` para incluir a todos los empleados, incluso a los que no están asignados a ningún departamento.
Consejos y buenas prácticas
- Asegúrate de la compatibilidad de las columnas. Utiliza la palabra clave `ON` para unir tablas con columnas que tengan tipos de datos compatibles para evitar errores.
- Utiliza alias claros. Al unir varias tablas, especialmente con autouniones, utiliza alias de tablas para mayor claridad y brevedad.
- Combínalo con "DONDE". Tras definir las relaciones con `ON`, refina aún más los resultados utilizando una cláusula `WHERE` para filtrar los datos.
- Comprueba la lógica de unión. Comprueba que tus condiciones `ON` representan fielmente la lógica empresarial y las relaciones previstas en el esquema de la base de datos.
- Consideraciones sobre el rendimiento. Indexa las columnas utilizadas en la condición `ON` para mejorar el rendimiento de la consulta.
- Aclara las condiciones complejas. Utiliza paréntesis para aclarar las condiciones de unión complejas, especialmente cuando se combinan varias condiciones.