Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Derme

Encontrar registros soltos

Recommended Posts

É o seguinte:

 

Vamos supor que eu tenha duas tabelas. Uma de estados e outra de cidades e

por algum motivo deleto um estado sem deletar as cidades relacionadas. Como

posso fazer uma query na tabela cidades para encontrar essas cidades que ficaram

soltas, já que a ID do estado marcada pra elas não existe mais?

 

Obs: sei que podia achar procurando as cidades que tenha no campo id do estado a id igual a do estado

deletado, mas façamos de conta que não sei qual a id do estado deletado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

select *
from cidade
where not exists (select *
                  from estado
                  where estado.uf = cidade.uf)

Entre outras soluçôes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Numa query só? Não saberia dizer.

 

Mas, com a linguagem server-side que você usa para manipular o banco de dados (PHP, ASP...) você pode fazer uma query com DISTINCT para pegar uma única vez os ID's da tabela de estados, depois unir esses resultados, que viria num array normalmente com vírgulas e usar essa string gerada como argumento de uma cláusula NOT IN:

 

DELETE FROM cidades WHERE id_cidade NOT IN ( 1,2,3,5 )
O valor do NOT IN é a string delimitada por vírgulas que disse.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.