Question LEFT JOIN par rapport à LEFT OUTER JOIN dans SQL Server


Quelle est la différence entre LEFT JOIN et LEFT OUTER JOIN?


1227
2018-01-02 08:30


origine


Réponses:


Selon la documentation: FROM (Transact-SQL):

<join_type> ::= 
    [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
    JOIN

Le mot-clé OUTER est marqué comme optionnel (entre crochets), et ce que cela signifie dans ce cas est que le fait de le spécifier ou non ne fait aucune différence. Notez que les autres éléments de la clause de jointure sont également marqués comme optionnels, leur out va bien sûr faire une différence.

Par exemple, tout le type de pièce JOIN clause est facultative, auquel cas la valeur par défaut est INNER si vous spécifiez JOIN. En d'autres termes, c'est légal:

SELECT *
FROM A JOIN B ON A.X = B.Y

Voici une liste de 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 coup d'oeil à la réponse que j'ai laissée sur cette autre question SO: SQL joint gauche vs plusieurs tables sur la ligne FROM?.

enter image description here


1796
2018-01-02 08:51



Pour répondre à ta question il n'y a pas de différence entre LEFT JOIN   et LEFT OUTER JOIN, ils sont exactement les mêmes cela dit...

Au niveau supérieur, il y a principalement 3 types de jointures:

  1. INTERNE
  2. EXTÉRIEUR
  3. TRAVERSER

  1. JOINTURE INTERNE - récupère les données si présentes dans les deux tableaux.

  2. OUTER JOIN sont de 3 les types:

    1. LEFT OUTER JOIN - récupère les données si présentes dans la table de gauche.
    2. RIGHT OUTER JOIN - récupère les données si présentes dans la bonne table.
    3. FULL OUTER JOIN - récupère les données si présentes dans l'une des deux tables.
  3. CROSS JOINComme son nom l'indique [n X m] cela rejoint tout à tout.
    Semblable au scénario où nous énumérons simplement les tables pour joindre (dans le FROM clause du SELECT statement), en utilisant des virgules pour les séparer.


Points à noter:

  • Si vous mentionnez juste JOIN alors par défaut c'est un INNER JOIN.
  • Un OUTER rejoindre doit être LEFT | RIGHT | FULL vous ne pouvez pas simplement dire OUTER JOIN.
  • Vous pouvez laisser tomber OUTER mot-clé et juste dire LEFT JOIN ou RIGHT JOIN ou FULL JOIN.

Pour ceux qui veulent mieux les visualiser, allez sur ce lien: Une explication visuelle des jointures SQL


621
2017-12-09 18:05



Quelle est la différence entre la jointure gauche et la jointure externe gauche?

Rien. LEFT JOIN et LEFT OUTER JOIN sont équivalents.


274
2018-01-02 08:31



Lire la suite sur Représentation visuelle des jointures SQL

Visual Representation of SQL Joins


117
2017-10-28 23:02



Je suis un administrateur de bases de données PostgreSQL, autant que je puisse comprendre la différence entre la différence de jointures externe ou externe est un sujet qui a beaucoup de discussion tout autour de l'Internet. Jusqu'à aujourd'hui, je n'ai jamais vu de différence entre les deux; Donc je suis allé plus loin et j'essaie de trouver la différence entre ceux-là. A la fin j'ai lu toute la documentation à ce sujet et j'ai trouvé la réponse pour ça,

Donc, si vous regardez dans la documentation (au moins dans PostgreSQL) vous pouvez trouver cette phrase:

"Les mots INNER et OUTER sont facultatifs dans toutes les formes. INNER est la valeur par défaut LEFT, RIGHT, et FULL impliquer une jointure externe. " 

En d'autres mots,

LEFT JOIN et LEFT OUTER JOIN SONT IDENTIQUES

RIGHT JOIN et RIGHT OUTER JOIN SONT IDENTIQUES

J'espère que cela peut être une contribution pour ceux qui essaient toujours de trouver la réponse.


52
2017-08-30 02:33



Rien à dire avec des mots à côté de ça:enter image description here


44
2017-08-12 22:05



Left Join et Left Outer Join sont l'un et le même. Le premier est le raccourci pour le dernier. La même chose peut être dite sur le Right Join et Right Outer Join relation. La démonstration illustrera l'égalité. Des exemples de travail de chaque requête ont été fournis via SQL Fiddle. Cet outil permettra une manipulation pratique de la requête.

Donné

enter image description here

Joint gauche et Jointure externe gauche

enter image description here

Résultats

enter image description here


Rejoindre et Jointure externe droite

enter image description here

Résultats

enter image description here


37
2018-05-22 17:09



Je trouve plus facile de penser à Joins dans l'ordre suivant:

  • CROSS JOIN - un produit cartésien des deux tables. TOUTES les jointures commencent ici
  • INNER JOIN - un CROSS JOIN avec un filtre ajouté.
  • OUTER JOIN - une INNER JOIN avec des éléments manquants (à partir de la table GAUCHE ou DROITE) ajouté après.

Jusqu'à ce que je comprenne ce modèle (relativement) simple, JOINS était toujours un peu plus d'un art noir. Maintenant, ils ont un sens parfait.

J'espère que cela aide plus qu'il ne le rend confus.


34
2017-12-29 21:01



Pourquoi les touches GAUCHE / DROITE et GAUCHE EXTÉRIEUR / DROIT EXTÉRIEUR sont-elles les mêmes? Expliquons pourquoi ce vocabulaire. Comprenez que les jointures LEFT et RIGHT sont des cas spécifiques de la jointure OUTER, et ne peuvent donc être autre chose que OUTER LEFT / OUTER RIGHT. La jointure OUTER est également appelée PLEIN EXTERNE par opposition aux jointures GAUCHE et DROITE qui sont PARTIEL résultats de la jointure OUTER. Effectivement:

Table A | Table B     Table A | Table B      Table A | Table B      Table A | Table B
   1    |   5            1    |   1             1    |   1             1    |   1
   2    |   1            2    |   2             2    |   2             2    |   2
   3    |   6            3    |  null           3    |  null           -    |   -
   4    |   2            4    |  null           4    |  null           -    |   -
                        null  |   5             -    |   -            null  |   5
                        null  |   6             -    |   -            null  |   6

                      OUTER JOIN (FULL)     LEFT OUTER (partial)   RIGHT OUTER (partial)

Il est maintenant clair pourquoi ces opérations ont des alias, et il est clair que seulement 3 cas existent: INNER, OUTER, CROSS. Avec deux sous-cas pour l'EXTERNE. Le vocabulaire, la façon dont les enseignants expliquent cela, ainsi que certaines réponses ci-dessus, donnent souvent l'impression qu'il y a beaucoup de différents types de participation. Mais c'est en fait très simple.


26
2018-04-17 21:08