Maneiras simples de juntar três tabelas em SQL (com imagens)

Índice:

Maneiras simples de juntar três tabelas em SQL (com imagens)
Maneiras simples de juntar três tabelas em SQL (com imagens)

Vídeo: Maneiras simples de juntar três tabelas em SQL (com imagens)

Vídeo: Maneiras simples de juntar três tabelas em SQL (com imagens)
Vídeo: AutoHotKey / Tutorial 16 - ImageSearch 2024, Abril
Anonim

Ao trabalhar com tabelas em SQL, pode haver algumas situações em que você precise consultar três ou mais tabelas. Você pode unir três tabelas usando primeiro uma instrução de união para unir duas tabelas para criar uma tabela unida temporária. Em seguida, use uma segunda instrução de junção para juntar a terceira tabela.

Passos

11227971 1
11227971 1

Etapa 1. Digite SELECT seguido dos nomes das colunas que deseja consultar

Digite o nome da coluna de cada uma das três que deseja consultar. Separe cada nome de coluna com uma vírgula. Neste exemplo, estaremos consultando três tabelas denominadas "Alunos", "Escolas", "Detalhes"

Por exemplo, SELECT student_id, student_name, school_id, school, grade

11227971 2
11227971 2

Etapa 2. Digite FROM seguido do primeiro nome da tabela

Isso pode ser feito em uma linha separada ou imediatamente após a primeira instrução. Em nosso exemplo, digitaríamos FROM Students.

11227971 3
11227971 3

Etapa 3. Digite uma instrução de junção seguida do nome da segunda tabela

Existem quatro tipos de instruções de junção que você pode usar para juntar duas tabelas. Eles são os seguintes:

  • Digite JOIN para fazer um Junção interna. Isso retorna registros que possuem valores correspondentes em ambas as tabelas. Por exemplo, FROM Students JOIN Details.
  • Digite LEFT JOIN para fazer um Junção Externa Esquerda. Isso retorna todos os registros da tabela à esquerda e os valores correspondentes da tabela à direita. Por exemplo, FROM Students LEFT JOIN Details.
  • Digite RIGHT JOIN para fazer um Junção Externa Direita. Isso retorna todos os registros da tabela da direita e valores correspondentes da tabela da esquerda. Por exemplo, FROM Students RIGHT JOIN Details.
  • Digite FULL JOIN para fazer um Full Outer Join. Isso retorna todos os registros de ambas as tabelas. Por exemplo, FROM Students FULL JOIN Details.
11227971 4
11227971 4

Etapa 4. Digite uma instrução "ON" para as tabelas e colunas que estão sendo unidas

A sintaxe para esta instrução é "ON table_1.primary_key = table_2.foreign_key". "Table_1" é o nome da primeira tabela à qual você está ingressando e "primary_key" é o nome da coluna primária na primeira tabela. "Table_2" é o nome da segunda tabela, e "foreign_key" é um nome de coluna da segunda tabela que corresponde à coluna primária da primeira tabela.

  • Em nosso exemplo, "Students" é a primeira tabela e "student_id" é a chave primária da tabela Students, que também está na tabela Details. Então, digitaríamos ON Students.student_id = Details.student_id. Isso une a tabela Alunos à tabela Detalhes usando "student_id" como chave primária.
  • Alternativamente, se a coluna student_name estiver na tabela "Detalhes", você pode exibir a coluna student_name no lugar do campo student_id digitando ON Students.student_id = Details.student_name.
11227971 5
11227971 5

Etapa 5. Digite uma instrução de junção seguida do nome da terceira tabela

Isso pode ser em uma linha separada ou imediatamente após a instrução "ON" que uniu as duas primeiras tabelas. Você pode usar qualquer uma das quatro instruções de junção.

Em nosso exemplo, digitaríamos JOIN Schools

11227971 6
11227971 6

Etapa 6. Digite uma instrução "ON" que indica quais tabelas e colunas serão unidas

A sintaxe para a terceira junção é "ON table_3.primary_key = table_1.foreign_key". "Tabela 1". "Table_3 é o nome da terceira tabela. Isso adiciona a tabela três à junção final usando o nome da coluna primária da terceira tabela e a chave estrangeira da primeira tabela. Em nosso exemplo, digitaríamos ON Schools.student_id = Students.student_id. Toda a instrução de junção deve ser parecida com isto:

    SELECT student_id, student_name, school_id, school, grade FROM Students FULL JOIN Detalhes ON Students.student_id = Details.student_id JOIN Schools ON Schools.student_id = Students.student_id

Recomendado: