FC ConcursosFC Concursos

Flashcard FC370269

Como expressar em SQL que um registro está associado a todos os registros de outra tabela?

Linguagem SQL

FGV · 2024

De acordo com o assunto TI Banco de Dados: Linguagem SQL, responda:

Como expressar em SQL que um registro está associado a todos os registros de outra tabela?
Mostrar resposta e comentário

Resposta

Use dupla negação com NOT EXISTS:
SELECT t1.* FROM t1 WHERE NOT EXISTS (SELECT 1 FROM t2 WHERE NOT EXISTS (SELECT 1 FROM rel WHERE rel.id_t1 = t1.id AND rel.id_t2 = t2.id))

Explicação:
O NOT EXISTS interno verifica, para cada linha de T2, se existe correspondência em rel.
O NOT EXISTS externo assegura que não exista nenhum T2 sem correspondência — logo, associação a todos.
Os literais em SELECT 1 são irrelevantes; servem só para testar existência.




Veja como foi cobrado:
https://flashcardsconcursos.com.br/portal/flashcard/359617

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo