bdoweb 0 Denunciar post Postado Novembro 8, 2006 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 clauseE 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
cassitos 2 Denunciar post Postado Novembro 8, 2006 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