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 :
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
Tableau : commandes
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 :
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 :
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 :
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 :
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 :
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é :
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
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 :
Clause SUR
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500;
Cela donnera le résultat suivant :