Derme 0 Denunciar post Postado Fevereiro 5, 2010 É 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
Motta 645 Denunciar post Postado Fevereiro 5, 2010 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
Bruno Augusto 417 Denunciar post Postado Fevereiro 5, 2010 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