Ajuda com consulta simples

Galera, boa tarde.

Tenho a seguinte estrutura no banco de dados.

Screenshot_1

O exercício pede o seguinte: 25. Liste as agencias que não tem conta!

Minha consulta está da seguinte forma:

SELECT 
	a.CODAGENCIA as CodAgencia,
    a.NOME as NomeAgencia
FROM
	agencias as a
JOIN
	contas as c
on 
	a.CODAGENCIA = c.CODAGENCIA
WHERE
    -- não sei como fazer uma condição pra isso

Desde já agradeço, e desculpe se estiver na cara, sou iniciante.

SELECT 
	a.CODAGENCIA as CodAgencia,
    a.NOME as NomeAgencia
FROM
	agencias as a
WHERE
a.CODAGENCIA not in(SELECT contas.CODAGENCIA FROM contas)

Obs.: não peça desculpas por ser iniciante, todo mundo um dia teve que iniciar e mesmo tendo iniciado um dia ainda hoje passa por dificuldades tentando iniciar em alguma coisa mais avançada.

2 curtidas

Muito obrigado pelas palavras, vou estudar essas cláusulas not in.

Apenas para conhecimento, outra forma de fazer seria:

SELECT 
	a.CODAGENCIA as CodAgencia,
	a.NOME as NomeAgencia
FROM
	agencias a LEFT JOIN contas c ON a.CODAGENCIA = c.CODAGENCIA
WHERE
    c.CODAGENCIA IS NULL

O LEFT JOIN irá retornar todas as agências independente se houver contas relacionadas ou não, porém, na cláusula WHERE, há a condição c.CODAGENCIA IS NULL, que diz para retornar apenas aquelas agencias que não tiverem conta.

1 curtida