Pergunta

O que é a diferença entre uma junção interna e se juntar exterior? Qual é o significado preciso desses dois tipos de junta?

Foi útil?

Solução

Confira excelente de Jeff Atwood:

A Visual Explicação do SQL junta

Marc

Outras dicas

Wikipedia tem um longo artigo agradável sobre o tema [aqui] ( http: // en.wikipedia.org/wiki/Join_(SQL))

Mas, basicamente:

  • Inner junta resultados de retorno, onde há linhas que satisfazem a cláusula WHERE em todas as tabelas
  • Outer junta resultados de retorno, onde há linhas que satisfazem a cláusula WHERE em pelo menos uma das mesas

Você pode usar INNER JOIN para retornar todas as linhas de ambas as tabelas onde há um jogo. ie. na tabela resultante todas as linhas e colunas terão valores.

OUTER JOIN a tabela resultante pode ter colunas vazias. Junção externa pode ser a esquerda ou direita

LEFT OUTER JOIN retorna todas as linhas da primeira tabela, mesmo se não houver partidas na segunda tabela.

RIGHT OUTER JOIN retorna todas as linhas da segunda tabela, mesmo se não houver partidas na primeira tabela.

INNER JOIN retorna linhas que existem em ambas as tabelas

OUTER JOIN retorna todas as linhas que existem em ambas as tabelas

INNER JOIN retorna apenas uma linha juntada se o registro aparece em ambas mesa. Junção externa dependendo da direção irá mostrar todos os registros de uma tabela, juntou-se aos dados a partir deles se juntou a mesa onde existe uma linha correspondente

Usando Set matemática,

Inner Join is A ^ B;
Outer Join is A - B.

Por isso, é (+) é o seu lado A na consulta.

Suponha um esquema exemplo, com clientes e ordem:

  • INNER JOIN:. Recupera clientes com ordens somente

  • LEFT OUTER JOIN:. Recupera todos os clientes com ou sem ordens

  • RIGHT OUTER JOIN:. Recupera todas as ordens com ou sem correspondência de registros de clientes

Por informações sobre um pouco mais detalhada, consulte Inner e de associação exterior instruções SQL

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top