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

[Dúvida] Aula 08- Excluindo dados da tabela

Boa tarde pessoal!

Uma duvida que me surgiu enquanto assistia Microsoft SQL Server 2022: manipulando dados > aula 08- Excluindo dados da tabela

SELECT * FROM PRODUTOS 
WHERE CODIGO NOT IN (
    SELECT CODIGO_DO_PRODUTO 
    FROM SUCOS_FRUTAS.DBO.TABELA_DE_PRODUTOS
);

Achei interessante está query e forma que ela se comportou tanto no DELETE como na consulta. A duvida em questão é, nessa situação estamos relacionando duas tabelas de bancos diferentes uma é a PRODUTOS com a TABELA_DE_PRODUTOS em uma leitura rápida da query seria "Eu quero ver tudo que tenho na tabela PRODUTOS mas que não está na tabela TABELA_DE_PRODUTOS" o que me deixou curiosa é por que não precisou do JOIN nessa consulta?

o motivo da minha duvida é que sempre que penso em relacionamentos de tabelas me vem o JOIN a mente, então entender por que essa query deu certo vai me ajudar ...

1 resposta
solução!

Oi, Larissa! Tudo certo por aí?

Desculpe a demora em te responder.

Em vez de combinar linhas de diferentes tabelas (o que o JOIN faz), estamos usando a subconsulta para criar uma lista de valores e, em seguida, filtrando a tabela PRODUTOS com base nessa lista e no campo referente ao código do produto.

Devido à própria sintaxe das subconsultas e de seu propósito, não é necessário adicionar JOINs. Além disso, embora estejamos, de certo modo, relacionando duas tabelas distintas (PRODUTOS e TABELA_DE_PRODUTOS), estamos trabalhando mais com uma operação de filtro do que com uma combinação!

Uma curiosidade é que muitas subconsultas podem ser transformadas em consultas normais utilizando JOIN, mas isso depende de cada contexto. Larissa, caso queira se aprofundar neste assunto, deixo como dica de leitura o material abaixo:

Seu questionamento é bastante interessante, Larissa! Espero ter ajudado com a minha explicação.

Qualquer dúvida, estarei por aqui.

Um abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!