logo

Rejoindre MySQL à gauche

La jointure gauche dans MySQL est utilisée pour interroger les enregistrements de plusieurs tables. Cette clause est similaire à la clause Inner Join qui peut être utilisée avec une instruction SELECT immédiatement après le mot clé FROM. Lorsque nous utilisons la clause Left Join, elle renverra tous les enregistrements de la première table (côté gauche), même aucun enregistrement correspondant trouvé dans la deuxième table (côté droit). S'il ne trouve aucun enregistrement de correspondance dans la table de droite, il renvoie null.

En d’autres termes, la clause Left Join renvoie toutes les lignes de la table de gauche et les enregistrements correspondants de la table de droite ou renvoie Null si aucun enregistrement correspondant n’est trouvé. Cette jointure peut également être appelée une Jointure externe gauche clause. Ainsi, Outer est le mot-clé facultatif à utiliser avec Left Join.

Nous pouvons le comprendre avec la représentation visuelle suivante où Left Joins renvoie tous les enregistrements de la table de gauche et uniquement les enregistrements correspondants de la table de droite :

Rejoindre MySQL à gauche

Syntaxe MySQL LEFT JOIN

La syntaxe suivante explique la clause Left Join pour joindre deux ou plusieurs tables :

 SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON Join_Condition; 

Dans la syntaxe ci-dessus, Tableau 1 est la table de gauche, et Tableau 2 est le tableau de droite. Cette clause renvoie tous les enregistrements de la table1 et les enregistrements correspondants de la table2 en fonction des valeurs spécifiées. condition de jointure .

Exemple de jointure à gauche MySQL

Prenons quelques exemples pour comprendre le fonctionnement de la clause Left Join ou Left Outer Join :

Clause LEFT JOIN pour joindre deux tables

Ici, nous allons créer deux tables ' clients' et ' ordres' qui contient les données suivantes :

Tableau : clients

Rejoindre MySQL à gauche

Tableau : commandes

Rejoindre MySQL à gauche

Pour sélectionner des enregistrements dans les deux tables, exécutez la requête suivante :

 SELECT customers.customer_id, cust_name, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id; 

Après une exécution réussie de la requête, elle donnera le résultat suivant :

Rejoindre MySQL à gauche

MySQL LEFT JOIN avec la clause USING

Les tables clients et commandes ont le même nom de colonne, à savoir customer_id. Dans ce cas, MySQL Left Join peut également être utilisé avec la clause USING pour accéder aux enregistrements. L'instruction suivante renvoie l'identifiant client, le nom du client, la profession, le prix et la date à l'aide de la clause Left Join avec le mot clé USING.

 SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id); 

L'instruction ci-dessus donnera le résultat suivant :

Rejoindre MySQL à gauche

MySQL LEFT JOIN avec la clause Group By

La jointure gauche peut également être utilisée avec la clause GROUP BY. L'instruction suivante renvoie l'identifiant client, le nom du client, la qualification, le prix et la date à l'aide de la clause Left Join avec la clause GROUP BY.

 SELECT customers.customer_id, cust_name, qualification, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id GROUP BY price; 

L'instruction ci-dessus donnera le résultat suivant :

Rejoindre MySQL à gauche

LEFT JOIN avec la clause WHERE

La clause WHERE est utilisée pour renvoyer le filtre résultat du tableau. L'exemple suivant illustre cela avec la clause Left Join :

 SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price>2500; 

Cette déclaration donne le résultat ci-dessous :

Rejoindre MySQL à gauche

MySQL LEFT JOIN Plusieurs tables

Nous avons déjà créé deux tables nommées ' clients' et ' ordres' . Créons une table supplémentaire et nommons-la ' contacts' qui contient les données suivantes :

Rejoindre MySQL à gauche

Exécutez l'instruction suivante pour joindre les trois tables clients, commandes et contacts :

 SELECT customers.customer_id, cust_name, order_id, price, cellphone FROM customers LEFT JOIN contacts ON customer_id = contact_id LEFT JOIN orders ON customers.customer_id = orders.customer_id ORDER BY income; 

Après une exécution réussie de la requête ci-dessus, le résultat suivant sera généré :

Rejoindre MySQL à gauche

Utilisation de la clause LEFT JOIN pour obtenir des enregistrements sans correspondance

La clause LEFT JOIN est également utile dans un tel cas lorsque nous souhaitons obtenir des enregistrements de la table qui ne contiennent aucune ligne de données correspondante d'une autre table.

On peut le comprendre avec l'exemple suivant qui utilise la clause LEFT JOIN pour trouver un client qui n'a pas de numéro de téléphone portable :

 SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ; 

L'instruction ci-dessus renvoie le résultat suivant :

Unité arithmétique et logique
Rejoindre MySQL à gauche

Différence entre les clauses WHERE et ON dans MySQL LEFT JOIN

Dans la jointure LEFT Join, les conditions WHERE et ON donnent un résultat différent. Nous pouvons voir les requêtes suivantes pour comprendre leurs différences :

Clause OÙ

 SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price=2500; 

Il donnera le résultat suivant qui renvoie :

Rejoindre MySQL à gauche

Clause SUR

 SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500; 

Cela donnera le résultat suivant :

Rejoindre MySQL à gauche

REMARQUE : Les conditions WHERE et ON dans la clause Inner Join renvoient toujours des résultats équivalents.