Comparaison

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] mysql-right-join

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);


questions-techniques-sur-mysql

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *