Clause INNER JOIN de MySQL
La clause `INNER JOIN` de MySQL est utilisée pour extraire des lignes de deux tableaux ou plus sur la base d'une colonne commune aux deux tableaux. Il ne renvoie que les lignes qui ont des valeurs correspondantes dans les deux tableaux.
Utilisation
La clause `INNER JOIN` est utilisée lorsque vous devez sélectionner des données dans plusieurs tableaux où il existe une correspondance dans les colonnes spécifiées. Il est généralement utilisé dans les instructions `SELECT` pour combiner des lignes provenant de différents tableaux.
sql
SELECT columns
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name;
Dans cette syntaxe, `INNER JOIN` combine les lignes de `table1` et `table2` dont les valeurs `column_name` correspondent. Notez que s'il n'y a pas de tableaux correspondants dans l'un ou l'autre tableau, aucune ligne ne sera renvoyée.
Exemples
1. Jointure interne de base
sql
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;
Cet exemple récupère les noms des employés ainsi que les noms de leurs départements respectifs en joignant les tableaux `employees` et `departments` sur les correspondances `department_id` et `id`.
2. Jointure intérieure avec conditions supplémentaires
sql
SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.id
WHERE orders.order_date > '2023-01-01';
Cette requête récupère les identifiants des commandes et les noms des clients pour les commandes passées après le 1er janvier 2023, à l'aide d'une jointure interne entre les tableaux `orders` et `customers`.
3. Jointure interne avec plusieurs tableaux
sql
SELECT students.name, courses.course_name, grades.grade
FROM students
INNER JOIN grades ON students.id = grades.student_id
INNER JOIN courses ON grades.course_id = courses.id;
Cet exemple joint trois tableaux : `students`, `grades`, et `courses`, pour afficher le nom de chaque étudiant, les cours auxquels il est inscrit, et ses notes.
Conseils et bonnes pratiques
- Utilisez des références explicites aux colonnes. Pour éviter toute ambiguïté, utilisez toujours le nom du tableau ou un alias avec le nom des colonnes.
- Assurer l'indexation des colonnes de jointure. Indexez les colonnes de jointure pour améliorer les performances des requêtes.
- Filtrer tôt. Appliquez les clauses `WHERE` dès le début pour minimiser les données avant la jointure.
- Utilisez des alias de tableaux. Utilisez des alias de tableau pour simplifier les requêtes et améliorer la lisibilité.
- Limitez les résultats. Appliquer `LIMIT` pour récupérer uniquement les données nécessaires, réduisant ainsi la charge de la base de données.
Note
`INNER JOIN` est le type de jointure par défaut si aucun type spécifique n'est indiqué lors de l'utilisation du mot-clé `JOIN`.