Différence entre INNER JOIN et LEFT JOIN
La différence clé entre INNER JOIN et LEFT JOIN est la suivante: LEFT JOIN renvoie la partie « GAUCHE » c’est à dire que toutes les lignes de la table gauche seront retournées, même s’il n’y a pas de ligne correspondante dans la table droite. Tandis que INNER JOIN renvoie toutes les lignes de deux tables qui remplissent une condition donnée.
INNER JOIN
Inner JOIN est utilisée pour renvoyer toutes les lignes de deux tables qui remplissent une condition donnée.
Exemple:
Prenons un exemple d’utilisation de la clause INNER JOIN pour voir comment elle fonctionne. Pour cela nous allons utiliser les tables « Clients » et « Commandes ».
La requête suivante sélectionne toutes les commandes effectuées par les clients:
SELECT Commandes.CommandeID, Clients.Nom FROM Commandes INNER JOIN Clients ON Commandes.ClientID = Clients.ClientID;
La clause INNER JOIN sélectionne toutes les lignes de deux tables tant qu’il existe une correspondance entre les colonnes. S’il y a des lignes dans la table « Commandes » qui n’ont pas de correspondance dans la table « Clients », ces commandes ne seront pas affichées!
LEFT JOIN
LEFT JOIN est utilisé pour renvoyer la partie « GAUCHE » c’est à dire que toutes les lignes de la table gauche seront retournées, même s’il n’y a pas de ligne correspondante dans la table droite. Cela pourrait entraîner l’affichage de valeurs NULL dans les colonnes renvoyées par la table droite.
Exemple:
Prenons un exemples d’utilisation de la clause LEFT JOIN pour voir comment elle fonctionne. Pour cela nous allons utiliser les tables « table1 » et « table2 ».
La clause LEFT JOIN définit la valeur de chaque colonne de la table droite qui ne correspond pas à la table gauche sur NULL.
Implémentation sur MySQL:
L’instruction suivante utilise la clause LEFT JOIN pour joindre « table1 » avec « table2 ».
SELECT * FROM table2 LEFT JOIN table1 USING(Adresse);