Seguimos com as soluções para os exercícios de SQL!
Antes de resolver qualquer problema de SQL do URI/BEECROWD, recomendamos seguir os seguintes passos:
- Ler todo enunciado do problema.
- Ler os tópicos do fórum em caso de dúvidas
- Preparar o esquema, conforme fornecido no problema. Obs.: muitas vezes o pessoal coloca o código de criação do esquema no fórum, então é só copiar!
Plataforma: URI (BEECROWD)
Problema: 2605
Solução:
Resolvi quebrar essa solução em quatro linhas só por uma questão de legibilidade. Como já comentei em outras postagens, quem preferir pode fazer tudo na mesma linha.
Esse exercício exigia o uso de duas tabelas, products e providers. Era necessário obter os nomes de todos os produtos e fornecedores com código da categoria igual a 6. OK, isso parece fácil, basta criarmos uma condição na cláusula WHERE para que a categoria seja igual a 6. No entanto, é necessário realizar a referência correta entre o produto e o provedor, ou seja, não podemos relacionar o produto a qualquer provedor, mas sim ao provedor dele. Isso é feito acrescentando mais uma condição na cláusula WHERE, sendo necessário usar o operador lógico AND. Dessa forma, duas condições precisam ser satisfeitas:
- A categoria do produto precisa ser a 6;
- O id do provedor do produto (tabela products) precisa bater com um id de provedor (tabela providers).
SELECT products.name, providers.name FROM products, providers WHERE products.id_categories = 6 AND products.id_providers = providers.id;
Nenhum comentário:
Postar um comentário