Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida no exercício do tópico "Buscando os sabores dos produtos mais vendidos".

Durante a realização do exercício, antes de olhar a sugestão do instrutor cheguei ao seguinte script, que tem o mesmo resultado da resolução dada pelo instrutor, gostaria de saber se há algum erro de boas práticas no script que fiz comparado ao que o instrutor fez, ou se o meu script realmente não está completo (Estou com um pouco de duvida pois ainda não estou habituado a utilizar o Inner join).

Script do instrutor e resultado da consulta. Utilizou o inner Join na subconsulta. Script instrutor

SELECT DISTINCT SABOR FROM TABELA_DE_PRODUTOS 
WHERE
    CODIGO_DO_PRODUTO IN (SELECT 
        INF.CODIGO_DO_PRODUTO 
        FROM 
            ITENS_NOTAS_FISCAIS INF
            INNER JOIN 
            TABELA_DE_PRODUTOS TP 
            ON INF.CODIGO_DO_PRODUTO = TP.CODIGO_DO_PRODUTO
        GROUP BY INF.CODIGO_DO_PRODUTO, TP.NOME_DO_PRODUTO HAVING SUM(INF.QUANTIDADE) > 394000);

Meu script e resultado da consulta. Não utilizei inner join na subconsulta. Meu script

SELECT DISTINCT SABOR FROM tabela_de_produtos
WHERE
    CODIGO_DO_PRODUTO IN (SELECT CODIGO_DO_PRODUTO FROM ITENS_notas_fiscais GROUP BY codigo_do_produto HAVING SUM(QUANTIDADE) > 394000);
1 resposta
solução!

Acredito que a junção das tabelas 'itens_notas_ficais' e 'tabela_de_produtos' está presente no exemplo para demonstrar a possibilidade de aplicar junções em sub-consultas. Mas não é obrigatória nesse exemplo.

Dada as relações entre as tabelas do exemplo, a sua solução é aplicável.

Uma vez que, a relação entre elas é 1:1.

Sendo assim, a junção pode ser suprimida, como você fez.

Visto que, a existência de um item na tela itens_notas_fiscais, obrigatoriamente requer um item na tabela_de_produtos.