Ir para conteúdo

POWERED BY:

Arquivado

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

bdoweb

Excluindo dados de uma tabela que não esteja em outra

Recommended Posts

Seguinte pessoal,Tenho duas tabelas onde uma é dos artista e outra é das musicas do artistas consegui montar um select para listar os artistas que não contenham musicas

SELECT	artista.nome,	artista.nickname,	artista.email,	artista.data,	artista.int_idFROM 	artista LEFT OUTER JOIN musica ON ( artista.int_id = musica.Artista )WHERE	artista.data < "2005-12-31"	AND 	artista.int_id NOT IN( SELECT Artista FROM musica )
Porém o que eu preciso fazer é apagar esses caras tentei o seguinte SQL
DELETE FROM artista WHERE int_id IN(SELECT	artista.int_idFROM 	artista LEFT OUTER JOIN musica ON ( artista.int_id = musica.Artista )WHERE	artista.data < "2005-12-31"	AND 	artista.int_id NOT IN( SELECT Artista FROM musica ))
Porém ele deu o seguinte erro

#1093 - You can't specify target table 'artista' for update in FROM clause

E também tentei
DELETE FROM artista LEFT OUTER JOIN musica ON ( artista.int_id = musica.Artista )WHERE	artista.data < "2005-12-31"	AND 	artista.int_id NOT IN( SELECT Artista FROM musica )
Mas esse dava erro de sintax ... já naum faço a menor ideia de como exluir esses caras ... Se puderem me ajudar valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso de utilizar o DELETE na situação apresentada, você tem que definir quais tabelas terão o registro deletado, ex:

DELETE artista.* FROM artista LEFT OUTER JOIN musica ON ( artista.int_id = musica.Artista )WHERE artista.data < "2005-12-31" AND artista.int_id NOT IN( SELECT Artista FROM musica )

se forem mais tabelas, basta separá-las: artista.*, musica.*, etc.

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.