Galera, boa tarde.
Tenho a seguinte estrutura no banco de dados.
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