Saltar al contenido principal

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.