JOINS no SQL Server: tutorial com exemplos

Podemos recuperar dados de mais de uma tabela usando a instruรงรฃo JOIN. Existem principalmente 4 tipos diferentes de JOINS no SQL Server. Aprenderemos todos os JOINS em Servidor SQL com exemplos:

  • INNER JOIN/junรงรฃo simples
  • LEFT OUTER JOIN/LEFT JOIN
  • RIGHT OUTER JOIN/RIGHT JOIN
  • JUNร‡รƒO EXTERNA COMPLETA

INNER JOIN

Este tipo de JOIN do SQL Server retorna linhas de todas as tabelas nas quais a condiรงรฃo de junรงรฃo รฉ verdadeira. ร‰ necessรกria a seguinte sintaxe:

SELECT columns
FROM table_1 
INNER JOIN table_2
ON table_1.column = table_2.column;

Usaremos as duas tabelas a seguir para demonstrar isso:

Mesa de Alunos:

INNER JOIN

Tabela de taxas:

INNER JOIN

O comando a seguir demonstra um INNER JOIN no SQL Server com exemplo:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
INNER JOIN Fee
ON Students.admission = Fee.admission

O comando retorna o seguinte:

INNER JOIN

Podemos informar os alunos que pagaram suas taxas. Utilizamos a coluna com valores comuns nas duas tabelas, que รฉ a coluna de admissรฃo.

JUNร‡รƒO EXTERNA ESQUERDA

Este tipo de junรงรฃo retornarรก todas as linhas da tabela da esquerda mais os registros da tabela da direita com valores correspondentes. Por exemplo:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
LEFT OUTER JOIN Fee
ON Students.admission = Fee.admission

O cรณdigo retorna o seguinte:

JUNร‡รƒO EXTERNA ESQUERDA

Os registros sem valores correspondentes sรฃo substituรญdos por NULLs nas respectivas colunas.

DIREITO OUTER JOIN

Este tipo de junรงรฃo retorna todas as linhas da tabela da direita e apenas aquelas com valores correspondentes na tabela da esquerda. Por exemplo:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
RIGHT OUTER JOIN Fee
ON Students.admission = Fee.admission

A instruรงรฃo para OUTER JOINS SQL server retorna o seguinte:

DIREITO OUTER JOIN

A razรฃo para a saรญda acima รฉ que todas as linhas da tabela Taxas estรฃo disponรญveis na tabela Alunos quando correspondidas na coluna admissรฃo.

JUNร‡รƒO EXTERNA COMPLETA

Este tipo de junรงรฃo retorna todas as linhas de ambas as tabelas com valores NULL onde a condiรงรฃo JOIN nรฃo รฉ verdadeira. Por exemplo:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
FULL OUTER JOIN Fee
ON Students.admission = Fee.admission

O cรณdigo retorna o seguinte resultado para consultas FULL OUTER JOINS em SQL:

JUNร‡รƒO EXTERNA COMPLETA

Resuma esta postagem com: