Jointure intérieure vs jointure extérieure
La jointure intérieure et la jointure extérieure sont deux des méthodes de jointure SQL utilisées dans le traitement des requêtes pour les bases de données. Ils appartiennent à la famille des clauses de jointure (deux autres à gauche et à la droite). Cependant, il y a une jointure autonome qui peut être utilisée pour des situations spécialisées. Le but de JOIN est de combiner des champs en utilisant les valeurs communes aux deux tables. Ces jointures combinent des enregistrements à partir de plusieurs tables dans une base de données. Il crée des ensembles résultants, qui peuvent être enregistrés comme une autre table.
Qu'est-ce que Inner Join?
L'opération de jointure SQL la plus couramment utilisée est la jointure intérieure. Il peut être considéré comme le type de jointure par défaut utilisé dans les applications. Jointure intérieure Utilisez le jointure-prédicat pour combiner deux tables. En supposant que les deux tables sont A et B, alors le prédicat de jointure comparera les lignes de A et B pour découvrir toutes les paires qui satisfont le prédicat. Les valeurs de colonne de toutes les lignes satisfaites de tables A et B sont combinées pour créer le résultat. Il peut être considéré comme en prenant d'abord la jointure croisée (produit cartésien) de tous les enregistrements, puis en retournant uniquement les enregistrements qui satisfont le prédicat de jointure. Cependant, en réalité, le produit cartésien n'est pas calculé car il est très inefficace. Jointure de hachage ou sort-mégation de jointure est utilisée, plutôt.
Qu'est-ce que la jointure extérieure?
Contrairement, la jointure intérieure, la jointure extérieure conserve tous les enregistrements même s'il ne peut pas trouver un enregistrement correspondant. Cela signifie que la jointure extérieure a besoin d'un enregistrement pour trouver un enregistrement correspondant pour qu'il apparaisse dans le résultat. Au lieu de cela, il renverra tous les enregistrements, mais les enregistrements inégalés auront des valeurs nulles. Les jointures externes sont divisées en trois sous-catégories. Ils sont la jointure extérieure gauche, la jointure extérieure droite et la jointure extérieure complète. Cette différenciation est basée sur la ligne de la table (table de gauche, table droite ou les deux tables) retenue lorsque des enregistrements inégalés sont trouvés. Les jointures externes gauche (également connues sous le nom de simple jointure gauche) conservent tous les enregistrements du tableau gauche. Cela signifie, même si les enregistrements de correspondance du nombre sont nuls, il aura toujours des enregistrements dans le tableau de résultat, mais aura des valeurs nulles pour toutes les colonnes de B. En d'autres termes, toutes les valeurs de la table de gauche sont renvoyées avec des valeurs appariées de la table droite (ou des valeurs nulles lorsqu'elles sont inégalées). Si les valeurs de plusieurs lignes de la table de gauche sont adaptées à une seule ligne de la table droite, la ligne de la table droite sera répétée comme requis. La jointure extérieure droite est à peu près similaire à la jointure extérieure gauche, mais le traitement des tables est vénéré. Cela signifie que le résultat aura toutes les lignes de la table droite au moins une fois avec des valeurs de table gauche correspondantes (et des valeurs nulles pour les valeurs droites inégalées). La jointure extérieure complète est plus complète que les jointures extérieures à gauche et à droite. Il se traduit par la combinaison de l'effet de l'application de l'extérieur gauche et droit réunie.
Quelle est la différence entre la jointure intérieure et la jointure extérieure?
Inner Join ne garde pas les lignes inégalées dans le résultat, mais la jointure extérieure gardera tous les enregistrements d'au moins un tableau (selon la jointure extérieure a été utilisée). Ainsi, le comportement de n'avoir aucune information présente sur les lignes inégalées dans le tableau de résultat n'est pas souhaitable, vous devez toujours utiliser l'une des jointures extérieures (à la place de la jointure intérieure). Inner Join peut ne pas produire de résultat si aucune correspondance n'est trouvée. Mais la jointure extérieure produira toujours une table résultante, même sans lignes correspondantes. Inner Join renvoie toujours des tables avec des valeurs (si renvoyées). Mais les jointures externes peuvent entraîner des tables avec des valeurs nulles.