Quelle est la différence entre une jointure gauche et jointure externe gauche?
Réponses
Trop de publicités?Selon les documents: à PARTIR de (Transact-SQL):
<join_type> ::=
[ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
JOIN
Le mot-clé OUTER
est marqué comme étant facultatifs (entre crochets), et ce que cela signifie dans ce cas est que si vous spécifiez ou non ne fait aucune différence. Notez que tandis que les autres éléments de la clause de jointure est également marquée comme étant facultatif, laissant entre eux sera évidemment une différence.
Par exemple, l'ensemble de la type-partie de l' JOIN
clause est facultative, auquel cas la valeur par défaut est INNER
si vous venez de spécifier JOIN
. En d'autres termes, c'est légal:
SELECT *
FROM A JOIN B ON A.X = B.Y
Voici une liste des syntaxes équivalentes:
A LEFT JOIN B A LEFT OUTER JOIN B
A RIGHT JOIN B A RIGHT OUTER JOIN B
A FULL JOIN B A FULL OUTER JOIN B
A INNER JOIN B A JOIN B
Jetez aussi un oeil à la réponse que j'ai laissé sur cette les autres DONC, la question: SQL left join vs plusieurs tables à PARTIR de la ligne?.
Pour répondre à ta question il n'y a pas de différence entre la GAUCHE REJOINDRE et JOINTURE EXTERNE GAUCHE, ils sont exactement les mêmes que dit...
Au premier niveau il y a principalement 3 types de jointures:
- INTÉRIEURE
- EXTÉRIEUR
- CROIX
INNER JOIN - récupère des données si elles sont présentes dans les deux tables.
JOINTURE EXTERNE sont de 3 types:
LEFT OUTER JOIN
- extrait des données si elles sont présentes dans la table de gauche.RIGHT OUTER JOIN
- extrait des données si elles sont présentes dans la table de droite.FULL OUTER JOIN
- extrait des données si elle est présente dans les deux tables.JOINTURE CROISÉE, comme son nom l'indique, n'
[n X m]
qui relie tout à tout.
Comme dans le scénario où l'on énumère simplement les tables pour l'adhésion (enFROM
clause de l'SELECT
), à l'aide des virgules pour séparer.Points à noter:
- Si vous venez de mentionner
JOIN
alors par défaut, c'est unINNER JOIN
.- Un
OUTER
de jointure doit êtreLEFT
|RIGHT
|FULL
vous ne pouvez pas simplement direOUTER JOIN
.- Vous pouvez déposer
OUTER
mot-clé, et disonsLEFT JOIN
ouRIGHT JOIN
ouFULL JOIN
.Pour ceux qui veulent visualiser ces dans une meilleure façon, s'il vous plaît aller à ce lien: Une Explication Visuelle de Jointures SQL
Lire la suite à la Représentation Visuelle des Jointures SQL
Je suis un PostgreSQL DBA, aussi loin que je pouvais comprendre la différence entre l'extérieur ou non, les jointures externes différence est un sujet qui a beaucoup de discussion tout autour de l'internet. Jusqu'à aujourd'hui je n'ai jamais vu une différence entre les deux alors je suis allé plus loin et j'ai essayer de trouver la différence entre ceux-ci. En fin de compte, j'ai lu toute la documentation à ce sujet et j'ai trouvé la réponse à cette question,
Donc, si vous regardez sur la documentation(au moins PostgreSQL), vous pouvez trouver cette phrase:
"Les mots INTÉRIEURE et EXTÉRIEURE sont en option dans toutes les formes. INTÉRIEURE est la valeur par défaut; à GAUCHE, à DROITE, et COMPLET implique une jointure externe." (http://www.postgresql.org/docs/8.4/static/queries-table-expressions.html)
En d'autres termes,
Left Join et Jointure Externe Gauche SONT LES MÊMES
Right Join et Right Outer Join SONT LES MÊMES
J'espère que cela peut être une contribution pour ceux qui sont encore à essayer de trouver la réponse.