single
Juntar 2 Tabelas
Deslize para mostrar o menu
Você chamou 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:
Sua primeira tarefa é fazer o join dessas duas tabelas para descobrir quantos produtos existem em cada categoria. Será utilizada uma instrução JOIN para isso.
Antes de iniciar a tarefa, vamos entender o que é uma instrução JOIN e como ela funciona.
JOIN em SQL é uma operação que combina linhas de duas ou mais tabelas com base em uma coluna relacionada entre elas. O 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. Para as tabelas, esse vínculo compartilhado é product.category_id e category.id.
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. Indica ao SQL exatamente de qual tabela e coluna você está se referindo.
Veja como o JOIN funciona na prática. Imagine que queremos obter o preço médio dos produtos para cada nome de categoria.
A consulta para realizar isso é assim:
1234SELECT category.name, AVG(product.price) AS average_price FROM product JOIN category ON product.category_id = category.id GROUP BY category.name
Aqui está uma explicação de como utilizamos o JOIN em nossa consulta:
- Na parte
SELECT, listamos as colunas desejadas de ambas as tabelas, incluindo o nome da tabela para maior clareza; - Na parte
JOIN, especificamos a tabela a ser unida (category) e as colunas em comum que as conectam (product.category_id = category.id); - Em seguida, agrupamos os dados por
category.namepara calcular o preço médio utilizando a funçãoAVG().
Se isso parecer complexo, veja uma sintaxe simples para usar o JOIN:
SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.common_column = table2.common_column
Ao contrário da cláusula UNION, a instrução JOIN permite combinar tabelas inteiras, não apenas as colunas que elas compartilham. Observe que UNION não exige subconsultas por padrão — subconsultas só são necessárias se você quiser filtrar ou agrupar o conjunto de resultados combinado. Em muitos casos, é possível usar UNION diretamente entre duas instruções SELECT sem subconsultas.
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, deve-se 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
- Recuperar a coluna
category.namee a soma da colunaproduct.amountda tabelaproduct. - Atribuir o alias
total_amountà segunda coluna. - Unir a tabela
categoryutilizando a cláusulaJOIN. - Relacionar as tabelas pela coluna em comum
product.category_id = category.id. - Agrupar os resultados por
category.name. - Ordenar os resultados por
total_amount.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo