Considere as seguintes tabelas (com seus campos)Tabela1(cod_...
Tabela1(cod_tab1, nome,depto)
Tabela2(cod_tab2, local)
No qual, cod_tab1 é chave primária da Tabela1,cod_tab2 é chave primária da Tabela2 e depto é chave estrangeira da Tabela1, cujos valores estãoassociados à Tabela2.
A consulta SQL que devolve só os elementos daTabela2 que não se relacionam com nenhuma tupla da Tabela1 é:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D
O tema desta questão envolve o conhecimento sobre SQL, mais especificamente, consultas que utilizam o conceito de subquery e a cláusula NOT IN. A questão pede para que seja retornada uma lista de elementos de uma tabela (Tabela2) que não possuem relação com outra tabela (Tabela1), o que é um cenário comum em bancos de dados relacionais onde queremos identificar registros órfãos ou exclusivos de uma tabela.
A alternativa correta (D) faz uso da cláusula WHERE NOT IN, que é uma maneira eficaz de selecionar todos os registros de uma tabela que não correspondem a nenhum registro em um conjunto de resultados especificado. Neste caso, o conjunto de resultados é fornecido pela subconsulta que seleciona todos os valores de 'depto' da Tabela1:
SELECT Tabela2.cod_tab2
FROM Tabela2
WHERE Tabela2.cod_tab2 NOT IN
(SELECT Tabela1.depto
FROM Tabela1
WHERE Tabela1.depto = Tabela2.cod_tab2);
Essa consulta irá retornar todos os 'cod_tab2' da Tabela2 que não são encontrados na lista de 'depto' da Tabela1, que é exatamente o que a questão pede.
É importante notar que o último WHERE
na subconsulta é desnecessário e pode ser removido, simplificando a consulta para:
SELECT Tabela2.cod_tab2
FROM Tabela2
WHERE Tabela2.cod_tab2 NOT IN
(SELECT Tabela1.depto FROM Tabela1);
Esta versão simplificada ainda mantém a lógica necessária para responder corretamente à questão.
É essencial compreender bem como as subqueries funcionam e como podemos utilizá-las com cláusulas como IN e NOT IN para relacionar dados de diferentes tabelas, atendendo a critérios específicos de seleção.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo