SQL - Utilisation des jointures

Le SQL JoinsLa clause est utilisée pour combiner des enregistrements de deux ou plusieurs tables dans une base de données. Un JOIN est un moyen de combiner des champs de deux tables en utilisant des valeurs communes à chacune.

Considérez les deux tableaux suivants -

Table 1 - Table CLIENTS

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

Table 2 - Table des COMMANDES

+-----+---------------------+-------------+--------+
|OID  | DATE                | CUSTOMER_ID | AMOUNT |
+-----+---------------------+-------------+--------+
| 102 | 2009-10-08 00:00:00 |           3 |   3000 |
| 100 | 2009-10-08 00:00:00 |           3 |   1500 |
| 101 | 2009-11-20 00:00:00 |           2 |   1560 |
| 103 | 2008-05-20 00:00:00 |           4 |   2060 |
+-----+---------------------+-------------+--------+

Maintenant, joignons ces deux tables dans notre instruction SELECT comme indiqué ci-dessous.

SQL> SELECT ID, NAME, AGE, AMOUNT
   FROM CUSTOMERS, ORDERS
   WHERE  CUSTOMERS.ID = ORDERS.CUSTOMER_ID;

Cela produirait le résultat suivant.

+----+----------+-----+--------+
| ID | NAME     | AGE | AMOUNT |
+----+----------+-----+--------+
|  3 | kaushik  |  23 |   3000 |
|  3 | kaushik  |  23 |   1500 |
|  2 | Khilan   |  25 |   1560 |
|  4 | Chaitali |  25 |   2060 |
+----+----------+-----+--------+

Ici, il est à noter que la jointure est effectuée dans la clause WHERE. Plusieurs opérateurs peuvent être utilisés pour joindre des tables, tels que =, <,>, <>, <=,> =,! =, BETWEEN, LIKE et NOT; ils peuvent tous être utilisés pour joindre des tables. Cependant, l'opérateur le plus courant est le symbole égal à.

Il existe différents types de jointures disponibles dans SQL -

  • INNER JOIN - renvoie des lignes lorsqu'il y a une correspondance dans les deux tables.

  • LEFT JOIN - renvoie toutes les lignes de la table de gauche, même s'il n'y a pas de correspondance dans la table de droite.

  • RIGHT JOIN - renvoie toutes les lignes de la table de droite, même s'il n'y a pas de correspondance dans la table de gauche.

  • FULL JOIN - retourne des lignes lorsqu'il y a une correspondance dans l'une des tables.

  • SELF JOIN - est utilisé pour joindre une table à elle-même comme si la table était deux tables, renommant temporairement au moins une table dans l'instruction SQL.

  • CARTESIAN JOIN - renvoie le produit cartésien des ensembles d'enregistrements des deux tables jointes ou plus.

Examinons maintenant chacune de ces jointures en détail.