Cf. l’exercice “sample23-Query-Join” du pour 2 exemples : celui expliqué ci-dessous (Client > Commande) un autre exemple, de comparaison entre 2 périodes Les données des exemples
Nous avons 5 clients. Le client 1 a passé 1 commande, le client 2 a passé 2 commandes, le client 3 a passé 3 commandes, les clients 4 et 5 n’ont pas passé de commande.
Le client 10 a passé une commande, mais n’est pas présent dans la liste des clients. Dans une base de données normalisée, ce genre de situation ne devrait pas être possible (respect de l’intégrité référentielle).
Externe gauche (par défaut)
Tous les clients de la table Client, même ceux sans commande. 8 lignes : les 6 commandes dont les clients sont dans la table Client (donc pas la commande du client 10) + les 2 clients sans commande Dans le doute, utiliser toujours cette jointure Externe droite
Toutes les commandes, même des clients qui n’existent pas dans la table Client (cliend_id 10). 7 lignes : les 7 lignes de la table Commandes
Externe entière
Tous les clients, même s’ils n’ont pas de commande, et toutes les commandes, même si le client n’existe pas dans la table Client. 9 lignes : les 6 lignes de la table Commandes dont les clients sont dans la table Client (donc pas la commande du client 10) + les 2 clients sans commande
+ la commande sans client (client_id 10). Interne
Les clients ayant au moins 1 commande et les commandes ayant au moins 1 client. 6 lignes : les 6 commandes dont les clients sont dans la table Client (donc pas la commande du client 10). Gauche opposée
Seulement les clients qui n’ont pas de commande. Permet d’isoler des cas particuliers, ici des clients sans commande. 2 lignes : les 2 clients n’ayant passé aucune commande. Droite opposée
Seulement les commandes qui n’ont pas de client. Permet d’isoler les non-conformités d’une table, ici de détecter les commandes sans client. 1 ligne, celle de la commande du client n’existant pas dans la table Client.