Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Junção de 2 Tabelas | Section
SQL Intermediário
Seção 1. Capítulo 15
single

single

bookJunção de 2 Tabelas

Deslize para mostrar o menu

Conquistamos a atenção de uma empresa que possui uma pequena loja online. Eles têm 2 tabelas que estão relacionadas entre si. A primeira tabela contém informações sobre os produtos vendidos na loja online.

Veja como é a tabela product:

A segunda tabela contém as categorias de produtos no site, juntamente com uma breve descrição para cada categoria.

Veja como é a tabela category:

Nossa primeira tarefa é unir essas duas tabelas para descobrir quantos produtos existem em cada categoria. Utilizaremos uma instrução JOIN para isso.

Antes de iniciar a tarefa, vamos entender o que é uma instrução JOIN e como ela funciona.

Note
Definição

JOIN em SQL é uma operação que combina linhas de duas ou mais tabelas com base em uma coluna relacionada entre elas. JOIN permite obter dados de várias tabelas em uma única consulta, o que simplifica a análise e o processamento de dados relacionados.

Para unir duas tabelas, elas precisam compartilhar uma coluna em comum. Veja como o JOIN funciona usando as tabelas employees e department. A coluna em comum é employees.department e departments.name.

Note
Nota

Ao escrever colunas dessas tabelas, comece com o nome da tabela, adicione um ponto e depois o nome da coluna. Isso ajuda a manter o código claro, especialmente quando as tabelas possuem colunas com o mesmo nome. Assim, o SQL sabe exatamente a qual tabela e coluna você está se referindo.

Aqui está a tarefa de obter o salário total dos funcionários em cada tipo de departamento (tech/non-tech).

A consulta para realizar essa tarefa será assim:

1234
SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
copy

Vamos analisar como utilizamos o JOIN em nossa consulta:

  1. Na parte SELECT, listamos as colunas desejadas de ambas as tabelas, incluindo o nome da tabela para maior clareza;
  2. Na parte JOIN, especificamos a tabela a ser unida e a coluna em comum que as conecta. Neste caso, employees.department e department.name;
  3. Em seguida, agrupamos os dados por type para calcular o salário total usando a função SUM().

Se isso parecer complexo, aqui está uma sintaxe simples para usar o JOIN:

SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.common_column = table2.common_column
Note
Nota

Diferente da cláusula UNION, a instrução JOIN permite combinar tabelas inteiras, não apenas as colunas que elas compartilham. Além disso, com JOIN, não há necessidade de subconsultas como ocorre com UNION.

Tarefa

Deslize para começar a programar

É necessário unir as duas tabelas: category e product. As colunas em comum entre essas tabelas são product.category_id e category.id.

O objetivo é encontrar o valor total de produtos em cada categoria. Para isso, é preciso calcular a soma da coluna product.amount.

Utilize o alias total_amount para essa coluna. Ao final da consulta, ordene o resultado pela coluna total_amount em ordem crescente.

Na resposta, devem aparecer 2 colunas: category.name e total.amount.

Instruções Resumidas

  • Recupere a coluna category.name e a soma da coluna product.amount da tabela product.
  • Atribua o alias total_amount à segunda coluna.
  • Una a tabela category utilizando a cláusula JOIN.
  • Relacione as tabelas pela coluna em comum product.category_id = category.id.
  • Agrupe os resultados por category.name.
  • Ordene os resultados por total_amount.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 15
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

some-alt