les requêtes de sélection demeurent les plus intéressantes, lorsqu'elles s'appliquent à plusieurs tables. Mais pour cela, il est nécessaire d'exécuter des commandes de jointure afin de pouvoir extraire des données de ces tables.

Il existe de nombreuses manières de joindre des tables dépendant souvent de l'implémentation utilisée. Néanmoins, la plupart des commandes de jointures accomplissent leurs opérations sur des colonnes communes aux différentes tables. Ainsi, les jointures sont possible uniquement sur des tables possédant des colonnes correspondantes comme une clé étrangère se relierait à une clé primaire.

Les relations entre les clés secondaires et les clés primaires des différentes tables.

Des tables mises en relation les unes avec les autres, peuvent facilement délivrer des informations recoupées. Si aucune instruction de jointure n'est fournie dans une requête de sélection, alors cette dernière renverra la totalité des lignes présentes dans les tables concernées.

Une jointure d'égalité symbolisée par EQUIJOIN ou INNER JOIN crée une relation de correspondance entre des tables.

SELECT l.Nom, e.Nom, c.Nom
FROM Logiciel AS l, Editeur AS e, Categorie AS c
WHERE l.Num_Editeur = e.Num_Editeur,
         AND l.Num_Categorie = c.Num_Categorie

SELECT l.Nom, c.Quantite, cl.Nom, c.Prenom
FROM Logiciel AS l
INNER JOIN Commande AS c INNER JOIN Client AS cl
         ON c.Num_Client = cl.Num_Client
         ON l.Num_Logiciel = c.Num_Logiciel
SELECT cl.Nom, cl.Prenom, l.Nom,
             (l.Prix * cmd.Quantite) AS Montant, m.Nom
FROM Logiciel l, Client cl, Commande cmd, Monnaie m
WHERE cmd.Num_Client = cl.Num_Client
         AND l.Num_Logiciel = cmd.Num_Logiciel
         AND l.Num_Monnaie = m.Num_Monnaie

Une jointure de non-égalité NON-EQUIJOIN permet de sélectionner des enregistrements dont les valeurs de colonnes ne correspondent pas.

SELECT s.Sexe, cl.Nom, cl.Prenom
FROM Logiciel AS l, Commande AS cmd, Sexe AS s
WHERE cl.Num_Client != cmd.Num_Client,
         AND cl.Num_Sexe = s.Num_Sexe

Les jointures externes OUTER JOIN sont employées pour retourner tous les enregistrements, y compris ceux ne possédant aucune correspondance. Ces jointures peuvent s'appliquer à gauche (LEFT), à droite (RIGHT) ou sur les deux (FULL).

SELECT cl.Nom, cl.Prenom, cmd.Num_Commande
FROM Client AS cl, Commande AS c
WHERE cl.Num_Client (+) = cmd.Num_Commande

SELECT cl.Nom, cl.Prenom, cmd.Num_Commande
FROM Client AS cl
LEFT OUTER JOIN Commande AS c
ON cl.Num_Client = cmd.Num_Commande
-- est équivalent à
SELECT cl.Nom, cl.Prenom, cmd.Num_Commande
FROM Commande AS c
RIGHT OUTER JOIN Client AS cl
ON cl.Num_Client = cmd.Num_Commande

Les jointures réflexives sont utilisées pour joindre une table à elle-même.

SELECT cl1.Nom, cl1.Prenom, cl2.Nom, cl2.Prenom
FROM Client AS cl1, Client AS cl2
WHERE cl1.Num_Client = cl2.Num_Client

SELECT cl1.Nom, cl1.Prenom, cl2.Nom, cl2.Prenom
FROM Client AS cl1
SELF JOIN Client AS cl2
ON cl1.Num_Client = cl2.Num_Client