Junção à esquerda vs. junção exterior à esquerda no servidor SQL

Qual é a diferença entre LEFT JOIN e LEFT OUTER JOIN?

Author: Quiver, 2009-01-02

17 answers

De acordo com a documentação: de (Transact-SQL):

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

A palavra-chave OUTER é marcada como opcional (entre parêntesis rectos), e o que isto significa neste caso é que, quer o indique ou não, não faz diferença. Note - se que, embora os outros elementos da cláusula de adesão também estejam marcados como facultativos, deixando Eles fora, farão, naturalmente, a diferença.

Por exemplo, a parte inteira do tipo da cláusula JOIN é facultativa, caso em que a o valor por omissão é INNER se indicar apenas JOIN. Por outras palavras, Isto é legal:

SELECT *
FROM A JOIN B ON A.X = B.Y
Aqui está uma lista de sintaxes equivalentes:
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

Também dê uma olhada na resposta que deixei nesta outra pergunta: SQL junção esquerda vs várias mesas na linha?.

enter image description here

 1851
Author: Lasse Vågsæther Karlsen, 2017-05-23 10:31:37
Para responder à sua pergunta, não há diferença entre a junção à esquerda. e a junta exterior esquerda, são exactamente iguais...

No nível superior existem principalmente 3 tipos de junções:

  1. Interior
  2. exterior
  3. Cruz

  1. Junção interna - obtém os dados se estiverem presentes em ambas as tabelas.

  2. Junção exterior são de 3 tipos:

    1. LEFT OUTER JOIN - obtém os dados se estiverem presentes na tabela à esquerda.
    2. RIGHT OUTER JOIN - obtém os dados se estiverem presentes na tabela à direita.
    3. FULL OUTER JOIN - obtém dados se estiverem presentes em qualquer uma das duas tabelas.
  3. CROSS JOIN , como o nome sugere, faz [n X m] que une tudo a tudo.
    Semelhante ao cenário em que simplesmente listamos as tabelas de adesão (na cláusula FROM da declaração SELECT), usando vírgulas para separar o.


Observações:

  • Se você apenas mencionar JOIN Então por padrão é um INNER JOIN.
  • a adesão tem de ser LEFT | RIGHT | FULL Você não pode simplesmente dizer OUTER JOIN.
  • podes largar OUTER a palavra-chave e dizer LEFT JOIN ou RIGHT JOIN ou FULL JOIN.

Para aqueles que querem visualizá-los de uma forma melhor, por favor, vá para este link: Uma explicação Visual das junções SQL
 627
Author: sactiw, 2014-05-14 09:38:02
Qual é a diferença entre a esquerda e a esquerda?

Nada. LEFT JOIN e {[1] } são equivalentes.

 281
Author: Mitch Wheat, 2014-08-22 00:03:40
 117
Author: Damian Drygiel, 2013-10-28 23:02:37

Eu sou um DBA PostgreSQL, tanto quanto eu pude entender a diferença entre a diferença entre junção externa ou não externa é um tópico que tem considerável discussão em toda a internet. Até hoje eu nunca vi uma diferença entre esses dois; então eu fui mais longe e eu tento encontrar a diferença entre eles. No final li toda a documentação sobre isso e encontrei a resposta para isso.

Por isso, se procurar na documentação (pelo menos no PostgreSQL), poderá encontrar este frase:

"as palavras INNER e OUTER são opcionais sob todas as formas. INNER é o valor por omissão; LEFT, RIGHT, e FULL implica uma junção exterior."

Em outras palavras,

LEFT JOIN e LEFT OUTER JOIN SÃO OS MESMOS

RIGHT JOIN e RIGHT OUTER JOIN SÃO OS MESMOS

Espero que possa ser um contributo para aqueles que ainda estão a tentar encontrar a resposta.
 54
Author: andrefsp, 2015-05-23 03:42:32
Nada a dizer em palavras ao lado disto.:enter image description here
 44
Author: Gisway, 2015-08-12 22:05:00

Left Join e Left Outer Join são um e o mesmo . A primeira é a abreviatura para a segunda. O mesmo pode ser dito sobre a relação Right Join e Right Outer Join. A demonstração ilustrará a igualdade. Exemplos de trabalho de cada consulta foram fornecidos via SQL Fiddle . Esta ferramenta permitirá a manipulação de mãos da consulta.

Dados

enter image description here

Junção À Esquerda e exterior à esquerda Juntar

enter image description here

Resultados

enter image description here


Junção direita e junção exterior direita

enter image description here

Resultados

enter image description here

 42
Author: WorkSmarter, 2017-12-14 23:06:26

Acho mais fácil pensar em Uniões pela seguinte ordem:

  • junção cruzada-um produto cartesiano de ambos os quadros. Todas as ligações começam aqui.
  • junção interna-junção cruzada com um filtro adicionado.
  • junção exterior - junção interior com elementos em falta (tanto da mesa esquerda como da direita) adicionado depois.
Até que eu descobri este modelo (relativamente) simples, as juntas sempre foram um pouco mais de uma arte preta. Agora fazem todo o sentido. Espero que isto ajude. mais do que confunde.
 34
Author: frozenjim, 2011-12-29 21:01:36
Porque é que o lado esquerdo/direito e o lado esquerdo/direito são os mesmos? Vamos explicar porquê este vocabulário. Entenda que as juntas esquerda e direita são casos específicos da junção exterior, e portanto não poderia ser nada mais do que a esquerda/direita exterior. A junção externa também é chamada completa externa em oposição às juntas esquerda e direita que são parciais resultados da junção externa. De facto:
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)
[[[2]] agora é claro por que essas operações têm pseudônimos, bem como é claro apenas 3 os casos existem: interior, exterior, Cruz. Com duas sub-caixas para o exterior. O vocabulário, a forma como os professores explicam isto, bem como algumas respostas acima, muitas vezes fazem com que pareça que há muitos tipos diferentes de adesão. Mas na verdade é muito simples.
 26
Author: Yugo Amaryl, 2014-04-17 21:15:11

Existem principalmente três tipos de juntas

  1. Interior: obtém dados, que estão presentes em ambas as tabelas
    • apenas junção significa junção interior
  2. Exterior: são de três tipos

    • buscar os dados exteriores à esquerda apenas na tabela esquerda e na condição de correspondência
    • à direita obtém os dados apenas na tabela direita e na condição de correspondência
    • os dados completos das cadeias exteriores apresentam qualquer uma ou ambas as tabelas
    • (esquerda, direita ou cheia) exterior Juntar-se pode ser escrito W / o escrevendo "exterior"
  3. Cross Join: junta tudo a tudo

 15
Author: Harsh, 2012-01-18 12:59:50

Para responder à tua pergunta

No servidor Sql junta-se a sintaxe o exterior é opcional

É mencionado no artigo msdn: https://msdn.microsoft.com/en-us/library/ms177634 (V = sql.130).aspx

Por isso, a seguinte lista mostra as sintaxas de junção equivalentes com e sem exterior

LEFT OUTER JOIN => LEFT JOIN
RIGT OUTER JOIN => RIGHT JOIN
FULL OUTER JOIN => FULL JOIN

Outros sintaxes equivalentes

INNER JOIN => JOIN
CROSS JOIN => ,

Recomendo vivamente o Artice do Mob Dotnet: junta-se ao servidor SQL enter image description here

 14
Author: mass, 2016-06-25 04:05:20

Existem apenas 3 ligações:

  • a) junção cruzada = cartesiana (P. ex.: quadro A, Quadro B)
  • B) junção interna = junção (P. ex.: Tabela A junta / junção interna B)
  • C) junção exterior:

       There are three type of outer join
       1)  Left Outer Join     = Left Join
       2)  Right Outer Join    = Right Join
       3)  Full Outer Join     = Full Join    
    
Espero que ajude.
 13
Author: Delickate, 2017-03-17 09:56:33
Açúcar sintático, torna mais óbvio para o leitor casual que a junção não é interior.
 12
Author: Unsliced, 2012-08-10 20:28:11

LEFT JOIN executa uma junção começando com a primeira (mais à esquerda) tabela e, em seguida, qualquer segundo correspondente (mais à direita) registros de tabela.

LEFT JOIN e LEFT OUTER JOIN são iguais.

De Acordo com DoFactory

 0
Author: Moes, 2017-03-14 00:53:11

Na junção esquerda e na junção exterior esquerda a realizar as mesmas operações.

Basicamente a junção à esquerda fornece todos os registos da tabela 1 e apenas os registos correspondentes da tabela 2.

Não contém os registos não compensados do quadro 2.

 0
Author: Alfin E. R., 2018-09-19 06:13:16
Como já foi mencionado aqui, não há diferença. O mundo Chave {[[0]} poderia ser removido do dicionário de palavras-chave SQL sem que perdêssemos o poder expressional nas consultas que somos capazes de escrever.

Também não precisamos de palavras-chave RIGHT e LEFT pois apenas uma delas é suficiente. Isso é porque SELECT * FROM A RIGHT JOIN B on A.ID = B.ID é exatamente o mesmo que SELECT * FROM B LEFT JOIN A on A.ID = B.ID. Encontrei todos estes Termos extra que confundem estudantes e novatos.

 0
Author: TheEsnSiavashi, 2018-09-25 23:04:56
Sei que isto é antigo, mas queria dar-me a minha opinião. Eu entendo que o LEFT JOIN deve ser o mesmo que LEFT OUTER JOIN mas, na minha experiência, tenho visto um LEFT JOIN puxar para trás Resultados diferentes do que um LEFT OUTER JOIN, então comecei a usar a palavra-chave OUTER, para ser mais específica e adequada. Linhas que deveriam ter voltado em um {[[0]} não onde como quando eu iria usar um LEFT OUTER JOIN Ele fez. Estava a tentar explicar isto a um colega quando ele não conseguiu ter as filas de que também precisava. decidi pesquisar no Google a diferença de modo a ter algum tipo de apoio para lhe mostrar. Isto pode ser uma coisa específica do servidor SQL, sobre a qual tenho dúvidas. Eu diria que, em boa prática, seria mais aconselhável afirmar explicitamente que se pretende que ocorra uma junção exterior. Só a minha opinião.
 -6
Author: William Norris, 2015-09-16 05:31:49