Menu
Coddy logo textTech

Basic Join Part 1

Parte da seção Fundamentos do Journey de SQL da Coddy — lição 43 de 72.

Até agora, lidamos com problemas de uma única tabela. Agora examinaremos como lidar com múltiplas tabelas.

Vamos assumir que temos as seguintes tabelas:

cursos

course_idlecturer_id
11
21
32

professores

lecturer_idname
1Jhonas
2Malidos

A tarefa é apresentar, para cada curso, o nome do professor correspondente.

Existem duas maneiras de fazer isso. Para cada opção, combinamos cada linha de uma tabela com a outra. Verificamos uma condição que deve ser atendida e, se a condição for atendida, combinamos as duas linhas em uma. O resultado desejado para ambas as opções:

id_do_cursonome_do_professor
1Jhonas
2Jhonas
3Malidos

Opção 1:

SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses, lecturers
WHERE courses.lecturer_id = lecturers.lecturer_id

Aqui escrevemos duas tabelas na palavra-chave FROM, e na cláusula WHERE solicitamos que o lecturer_id de ambos os registros seja o mesmo. Na cláusula SELECT agora escrevemos table.column para que o banco de dados saiba de onde buscar a coluna.

Opção 2:

SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses
JOIN lecturers ON courses.lecturer_id = lecturers.lecturer_id

Em vez de WHERE usamos JOIN table ON condition

Este tipo de join também é chamado de inner join.

challenge icon

Desafio

Fácil

Tabelas e colunas disponíveis:

  • <strong>grades</strong>: <strong>course_id</strong>, <strong>student_id</strong>, <strong>grade</strong>
  • <strong>students</strong>: <strong>id</strong>, <strong>name</strong>

Crie uma consulta que busca student_name, course_id, student_id e grade em uma tabela. Ordene o resultado por grade em ordem ascendente.

Folha de consulta

Para combinar dados de várias tabelas, use a sintaxe de vírgula com WHERE ou a sintaxe JOIN:

Opção 1: Sintaxe de vírgula com WHERE

SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.id = table2.id

Opção 2: Sintaxe JOIN

SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.id = table2.id

Use a sintaxe table.column para especificar de qual tabela uma coluna provém ao selecionar de várias tabelas. Esse tipo de join é chamado de inner join.

Experimente você mesmo

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos