|  
    
Vous joignez deux tables dans MySQL en utilisant la clause `JOIN` dans une instruction `SELECT`. Il existe plusieurs types de jointures, chacune ayant un comportement légèrement différent :
  
 1. `INNER JOIN` (le plus courant) :  
  
 Renvoie les lignes uniquement lorsqu'il existe une correspondance dans les deux tables en fonction de la condition de jointure. S'il n'y a aucune correspondance dans l'un ou l'autre des tableaux, la ligne est exclue du résultat.  
  
 ```sql  
 SELECT noms_colonnes  
 DE la table1  
 INNER JOIN table2 ON table1.column_name =table2.column_name;  
 ```  
  
 * `table1` et `table2` :les tables que vous souhaitez rejoindre.  
 * `column_name` :Les colonnes utilisées pour faire correspondre les lignes entre les tables. Ces colonnes doivent avoir des types de données compatibles.  
  
  
 Exemple :  
  
 Disons que vous avez deux tables : 
  
 * `Clients` : `IDClient`, `Nom`, `Ville`  
 * `Commandes` : `OrderID`, `CustomerID`, `OrderDate`, `TotalAmount`  
  
 Pour obtenir le nom du client et les détails de la commande pour toutes les commandes : 
  
 ```sql  
 SELECT Customers.Name, Orders.OrderID, Orders.OrderDate, Orders.TotalAmount  
 DES Clients  
 INNER JOIN Commandes ON Customers.CustomerID =Orders.CustomerID ;  
 ```  
  
 Cela ne renverra que les clients qui ont passé des commandes et les commandes appartenant à des clients existants.  
  
  
 2. `LEFT JOIN` (ou `LEFT OUTER JOIN`) :  
  
 Renvoie toutes les lignes du tableau de gauche (`table1`), même s'il n'y a aucune correspondance dans le tableau de droite (`table2`). S'il n'y a pas de correspondance dans le tableau de droite, les colonnes du tableau de droite auront des valeurs « NULL ».  
  
 ```sql  
 SELECT noms_colonnes  
 DE la table1  
 LEFT JOIN table2 ON table1.column_name =table2.column_name ;  
 ```  
  
 Exemple : Pour obtenir tous les clients et leurs commandes (y compris les clients sans commande) : 
  
 ```sql  
 SELECT Customers.Name, Orders.OrderID, Orders.OrderDate, Orders.TotalAmount  
 DES Clients  
 REJOIGNEZ À GAUCHE Commandes SUR Customers.CustomerID =Orders.CustomerID ;  
 ```  
  
  
 3. `RIGHT JOIN` (ou `RIGHT OUTER JOIN`) :  
  
 Renvoie toutes les lignes de la table de droite (`table2`), même s'il n'y a aucune correspondance dans la table de gauche (`table1`). S'il n'y a aucune correspondance dans le tableau de gauche, les colonnes du tableau de gauche auront des valeurs « NULL ».  
  
 ```sql  
 SELECT noms_colonnes  
 DE la table1  
 RIGHT JOIN table2 ON table1.column_name =table2.column_name ;  
 ```  
  
 Exemple : (Moins courant, mais utile dans des scénarios spécifiques) Ceci est fonctionnellement équivalent à un `LEFT JOIN` avec les tables échangées.  
  
  
 4. `JOINTURE EXTERNE COMPLÈTE` :  
  
 Renvoie toutes les lignes des deux tables. S'il y a une correspondance, la ligne correspondante est renvoyée. S'il n'y a aucune correspondance dans une table, les colonnes de l'autre table auront des valeurs « NULL ». MySQL ne prend pas directement en charge `FULL OUTER JOIN` . Vous devez le simuler en utilisant `UNION` de `LEFT JOIN` et `RIGHT JOIN`.  
  
 ```sql  
 SELECT noms_colonnes  
 DE la table1  
 LEFT JOIN table2 SUR table1.column_name =table2.column_name  
 UNION  
 SELECT noms_colonnes  
 DE la table1  
 RIGHT JOIN table2 ON table1.column_name =table2.column_name ;  
 ```  
  
 Choisir le bon JOIN :  
  
 Le choix du type de jointure dépend des données dont vous avez besoin. `INNER JOIN` est le choix le plus fréquent, mais `LEFT JOIN` et `RIGHT JOIN` sont cruciaux lorsque vous devez conserver toutes les lignes de l'une des tables. Simulez `FULL OUTER JOIN` lorsque vous avez besoin de toutes les lignes des deux tables. N'oubliez pas d'utiliser des alias (`table1`, `table2`) pour plus de clarté et pour éviter toute ambiguïté lorsque les noms de colonnes sont les mêmes dans les deux tables.
 
 |