Question

Quelle est la différence entre une jointure interne et une jointure externe? Quelle est la signification précise de ces deux types de jointures?

Était-ce utile?

La solution

Découvrez l'excellent Jeff Atwood:

Explication visuelle des jointures SQL

Marc

Autres conseils

Wikipedia a un long article sur le sujet [ici] ( http: // en.wikipedia.org/wiki/Join_(SQL))

Mais fondamentalement:

  • Les jointures internes renvoient des résultats contenant des lignes satisfaisant la clause where de TOUTES les tables
  • Les jointures externes renvoient des résultats contenant des lignes satisfaisant la clause where dans au moins une des tables

Vous utilisez INNER JOIN pour renvoyer toutes les lignes des deux tables contenant une correspondance. c'est à dire. dans la table résultante, toutes les lignes et colonnes auront des valeurs.

Dans OUTER JOIN, la table résultante peut avoir des colonnes vides. La jointure externe peut être GAUCHE ou DROITE

LEFT OUTER JOIN renvoie toutes les lignes de la première table, même s'il n'y a aucune correspondance dans la seconde table.

RIGHT OUTER JOIN renvoie toutes les lignes de la deuxième table, même s'il n'y a pas de correspondance dans la première table.

INNER JOIN renvoie les lignes. qui existent dans les deux tables

OUTER JOIN renvoie tout les lignes qui existent dans la table

La jointure interne ne renvoie une ligne jointe que si l'enregistrement apparaît dans les deux tables. La jointure externe en fonction de la direction affichera tous les enregistrements d'une table, joints aux données de la table jointe où une ligne correspondante existe

Utilisation d'un ensemble mathématique,

Inner Join is A ^ B;
Outer Join is A - B.

Ainsi, il s’agit du signe (+) dans la requête.

Supposons un exemple de schéma avec les clients et la commande:

  • INNER JOIN: Récupère uniquement les clients avec des commandes.

  • JOINDRE SUPÉRIEUR GAUCHE: Récupère tous les clients avec ou sans ordre.

  • RIGHT OUTER JOIN: récupère toutes les commandes avec ou sans enregistrements clients correspondants.

Pour des informations un peu plus détaillées, voir Inner et des instructions SQL de jointure externe

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top