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.
[wx_adsense]
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!
[wx_adsense]
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:


[wx_adsense]


L’instruction suivante utilise la clause LEFT JOIN pour joindre « table1 » avec « table2 ».
SELECT * FROM table2 LEFT JOIN table1 USING(Adresse);


[wx_amazon]


