51 votes

La jointure interne est-elle la même chose que la jointure équitable ?

Pouvez-vous me dire si la jointure interne et l'équi-jointure sont identiques ou non ?

47voto

Une "jointure interne" n'est pas la même chose qu'une "équi-jointure" en termes généraux.

équi-joint signifie joindre des tables en utilisant l'opérateur d'égalité ou un équivalent. J'appellerais toujours une jointure externe une "jointure d'égalité" si elle utilise uniquement l'égalité (d'autres peuvent ne pas être d'accord).

jointure interne est opposé à jointure externe et détermine comment joindre deux ensembles lorsqu'il n'y a pas de valeur correspondante.

18voto

Luca Tampellini Points 528

C'est simple : une équi-jonction est un type possible de jonctions internes

Pour une explication plus approfondie :

Une jointure interne est une jointure qui renvoie uniquement les lignes des tables jointes lorsqu'une certaine condition est remplie. Cette condition peut être d'égalité, ce qui signifie que nous aurions un équi-joint si la condition n'est pas celle de l'égalité - qui peut être une non-égalité, plus grande que, moins grande que, entre, etc. - nous avons un nonequi-joint appelé plus précisément theta-join.

Si nous ne voulons pas que ces conditions soient nécessairement remplies, nous pouvons avoir des jointures externes (toutes les lignes de toutes les tables sont retournées), des jointures gauches (toutes les lignes (tous les enregistrements de la table de gauche sont renvoyés, mais la table de droite ne correspond qu'à eux), une jointure droite (toutes les lignes de la table de droite sont renvoyées, avec une correspondance uniquement pour la table de gauche).

15voto

Osy Points 1041

La réponse est NON.

Une équi-jonction est utilisé pour faire correspondre deux colonnes de deux tables en utilisant l'opérateur explicite \= :

Ejemplo:

select *
  from table T1, table2 T2
  where T1.column_name1 = T2.column_name2

Une jointure interne est utilisé pour obtenir le produit croisé entre deux tables, en combinant tous les enregistrements des deux tables. Pour obtenir le bon résultat, vous pouvez utiliser une équi-jonction ou une jointure naturelle (les noms des colonnes entre les tables doivent être les mêmes).

Utilisation de l'équi-joint (explicite et implicite)

select *
  from table T1 INNER JOIN table2 T2
  on T1.column_name = T2.column_name

select *
  from table T1, table2 T2
  where T1.column_name = T2.column_name

Ou Utilisation d'un joint naturel

select *
  from table T1 NATURAL JOIN table2 T2

13voto

Shumi Gupta Points 1052

La réponse est non, voici la réponse courte et simple pour les lecteurs.

Jointure interne peut avoir une égalité (=) et d'autres opérateurs (comme <,>,<>) dans la condition de jointure.

Equi rejoint n'ont que l'opérateur d'égalité (=) dans la condition de jointure.

Equi rejoint peut être une jointure interne, une jointure externe gauche ou une jointure externe droite.

1voto

Abhishek Bhandari Points 175

S'il doit y avoir une différence, je pense qu'elle est là. Je l'ai testée avec DB2. Dans 'equi join', vous devez sélectionner la colonne de comparaison de la table jointe, dans la jointure interne, ce n'est pas obligatoire. Exemple :-

Select k.id,k.name FROM customer k
inner join  dealer on(
k.id =dealer.id
)

ici les lignes résultantes sont seulement des lignes de deux colonnes

id    name

Mais je pense que dans la jointure equi, vous devez aussi sélectionner les colonnes de l'autre table.

Select k.id,k.name,d.id FROM customer k,dealer d
where
k.id =d.id

et cela donnera des lignes avec trois colonnes, il n'y a pas moyen de ne pas avoir la colonne comparée indésirable de dealer ici (même si vous ne la voulez pas), les lignes ressembleront à cela

 id(from customer) name(from Customer) id(from dealer)

Il se peut que cela ne corresponde pas à votre question, mais c'est peut-être l'une des principales différences.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X