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_id | lecturer_id |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
professores
| lecturer_id | name |
|---|---|
| 1 | Jhonas |
| 2 | Malidos |
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_curso | nome_do_professor |
|---|---|
| 1 | Jhonas |
| 2 | Jhonas |
| 3 | Malidos |
Opção 1:
SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses, lecturers
WHERE courses.lecturer_id = lecturers.lecturer_idAqui 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_idEm vez de WHERE usamos JOIN table ON condition
Este tipo de join também é chamado de inner join.
Desafio
FácilTabelas 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.idOpção 2: Sintaxe JOIN
SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.id = table2.idUse 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
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
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns