JOINS

30 min Niveau 8

La clause SQLite JOINS est utilisée pour combiner les enregistrements de deux ou plusieurs tables dans une base de données. Une jointure est un moyen de combiner des champs de deux tables en utilisant des valeurs communes à chacune d'elles.

SQL définit trois grands types de jointures -

  • Le CROSS JOIN
  • La JOIN INNER
  • Le OUTER JOIN

Avant de poursuivre, considérons deux tables COMPANY et DEPARTMENT. Nous avons déjà vu les instructions INSERT pour remplir la table COMPANY. Supposons donc que la liste des enregistrements disponibles dans la table SOCIÉTÉ -

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Une autre table est DEPARTMENT avec la définition suivante -

CREATE TABLE DEPARTMENT(
    ID INT PRIMARY KEY      NOT NULL,
    DEPT           CHAR(50) NOT NULL,
    EMP_ID         INT      NOT NULL
);

Voici la liste des instructions INSERT pour alimenter la table DEPARTMENT -.

INSERT INTO DEPARTMENT (ID, DEPT, EMP_ID)
VALUES (1, 'IT Billing', 1 );

INSERT INTO DEPARTMENT (ID, DEPT, EMP_ID)
VALUES (2, 'Engineering', 2 );

INSERT INTO DEPARTMENT (ID, DEPT, EMP_ID)
VALUES (3, 'Finance', 7 );

Finalement, nous avons la liste suivante d'enregistrements disponibles dans la table DEPARTMENT -.

ID          DEPT        EMP_ID
----------  ----------  ----------
1           IT Billing  1
2           Engineering 2
3           Finance     7

Le CROSS JOIN

CROSS JOIN fait correspondre chaque ligne de la première table avec chaque ligne de la deuxième table. Si les tableaux d'entrée ont respectivement x et y lignes, le tableau résultant aura x*y lignes. Comme les CROSS JOIN peuvent générer des tableaux extrêmement volumineux, il faut veiller à ne les utiliser que lorsque c'est approprié.

Voici la syntaxe d'un CROSS JOIN

SELECT ... FROM table1 CROSS JOIN table2 ...

En se basant sur les tableaux ci-dessus, vous pouvez écrire un CROSS JOIN comme suit -

sqlite> SELECT EMP_ID, NAME, DEPT FROM COMPANY CROSS JOIN DEPARTMENT;

La requête ci-dessus produira le résultat suivant -

EMP_ID      NAME        DEPT
----------  ----------  ----------
1           Paul        IT Billing
2           Paul        Engineering
7           Paul        Finance
1           Allen       IT Billing
2           Allen       Engineering
7           Allen       Finance
1           Teddy       IT Billing
2           Teddy       Engineering
7           Teddy       Finance
1           Mark        IT Billing
2           Mark        Engineering
7           Mark        Finance
1           David       IT Billing
2           David       Engineering
7           David       Finance
1           Kim         IT Billing
2           Kim         Engineering
7           Kim         Finance
1           James       IT Billing
2           James       Engineering
7           James       Finance

Le INNER JOIN

logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus