9
votes

En SQL, une jointure est en fait une intersection? Et c'est aussi un lien ou une "union latéral"?

J'ai toujours pensé à une jointure dans SQL comme une sorte de liaison entre deux tables.

Par exemple, P>

select * from t1, t2 where t1.ID = t2.ID


0 commentaires

4 Réponses :


2
votes

Un jointure 'Liens' ou ERM ... rejoint les rangées de deux tables. Je pense que c'est ce que vous entendez par «Union latérale», bien que je pense personnellement que c'est un moyen terrible de la former. Mais il existe différents types de jointures qui font des choses légèrement différentes:


2 commentaires

Dis, si les deux tables sont toutes assorties deptids, les deux tables ont été fusionnées côte à côte, dans ce sens, c'est comme une "Union latérale"


@Jian Lin: Si cela vous permet de penser à cela comme une "union latérale" alors bien, mais l'Union a une signification bien définie dans SQL et ce n'est pas ça. J'éviterais d'utiliser ce terme lorsque vous parlez à d'autres personnes.



6
votes

Vous êtes sur la bonne voie; Les lignes retournées par un Joindre interne sont celles qui satisfont aux conditions de participation. Mais ceci est comme une intersection uniquement parce que vous utilisez égalité dans votre condition de jointure, appliquée aux colonnes de chaque table.

Sachez également que intersection est déjà une opération SQL et a une autre signification - et ce n'est pas la même chose que rejoindre .

SQL JOIN peut produire un nouveau type de ligne, qui dispose de toutes les colonnes des deux tables jointes. Par exemple: Col4, Col5 et Col6 n'existent pas dans le tableau A, mais ils existent à la suite d'une jointure avec la table B: xxx

un code SQL Intersection renvoie des lignes communes à deux tables distinctes, qui doivent déjà avoir les colonnes mêmes . xxx

Ceci arrive à produire Le même résultat que la jointure suivante: xxx

Toutes les marques de base de données prend en charge l'opérateur intersection .


0 commentaires

0
votes

Une jointure extérieure - n'est pas liée à - union ou union tout.

Par exemple, un «null» ne se produirait pas à la suite d'une opération syndicale ou syndicale, mais il résulte d'une jointure extérieure.


0 commentaires