MySQL ON Palavra-chave
A palavra-chave `ON` no MySQL é usada para especificar a condição para unir tabelas em uma cláusula `JOIN`. Ele define como duas tabelas devem ser relacionadas, indicando os campos comuns entre elas.
Uso
A palavra-chave `ON` é usada principalmente em operações `JOIN` para definir a condição de mesclagem de tabelas. Ele segue diretamente a palavra-chave `JOIN` para estabelecer o vínculo entre as tabelas.
SELECT columns
FROM table1
JOIN table2
ON table1.column_name = table2.column_name;
Nessa sintaxe, `ON table1.column_name = table2.column_name` especifica a condição na qual as tabelas são unidas. A palavra-chave `ON` pode ser usada com todos os tipos de junções, incluindo `INNER JOIN`, `LEFT JOIN`, `RIGHT JOIN` e outras.
Exemplos
1. Condição básica de união
SELECT employees.first_name, departments.department_name
FROM employees
JOIN departments ON employees.department_id = departments.department_id;
Nesse exemplo, a palavra-chave `ON` especifica que as tabelas `employees` e `departments` devem ser unidas quando os campos `department_id` coincidirem.
2. Como ingressar com condições adicionais
SELECT orders.order_id, customers.customer_name
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id AND customers.status = 'active';
Essa consulta usa a palavra-chave `ON` com uma condição adicional para unir apenas clientes ativos com pedidos.
3. Autoadesão
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 exemplo demonstra uma autojunção, usando a palavra-chave `ON` para relacionar funcionários a seus gerentes na mesma tabela.
4. Exemplo de LEFT JOIN
SELECT employees.first_name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.department_id;
Este exemplo mostra como a palavra-chave `ON` é usada com um `LEFT JOIN` para incluir todos os funcionários, mesmo aqueles não atribuídos a nenhum departamento.
Dicas e práticas recomendadas
- Garanta a compatibilidade da coluna. Use a palavra-chave `ON` para unir tabelas com colunas que tenham tipos de dados compatíveis para evitar erros.
- Use aliases claros. Ao unir várias tabelas, especialmente com junções automáticas, use aliases de tabela para maior clareza e brevidade.
- Combine com `WHERE`. Depois de definir as relações com `ON`, refine ainda mais os resultados usando uma cláusula `WHERE` para filtrar os dados.
- Verifique a lógica de união. Verifique se as condições "ON" representam com precisão a lógica comercial e os relacionamentos previstos no esquema do banco de dados.
- Considerações sobre o desempenho. Indexar as colunas usadas na condição `ON` para melhorar o desempenho da consulta.
- Esclarecer condições complexas. Use parênteses para esclarecer condições de união complexas, especialmente quando várias condições são combinadas.