jmurilof 0 Denunciar post Postado Junho 18, 2013 Galera, Possuo duas Tabelas, a imagem e a slide Descrição de Cada Tabela: -----> Imagem: id_imagem, caminho imagem, nome_imagem UPDATE slide SET nome_slide='nome', url_slide='url', efeito_slide='random' WHERE id_slide='1' -----> slide: id_imagem(foreign key), nome_slide, url_slide, efeito_slide UPDATE imagem SET nome_imagem = 'nome' WHERE id_imagem='?'; O que tenho que fazer para mostrar que o id da tabela imagem é igual o id_imagem da tabela slide? Obg pela atenção. Obs: Sou Novato. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 18, 2013 http://www.java2s.com/Tutorial/MySQL/0120__Subquery/Updatewithsubquery.htm Exemplo de update com sub select , veja o "update books" Compartilhar este post Link para o post Compartilhar em outros sites
jmurilof 0 Denunciar post Postado Junho 18, 2013 Então Cara, eu tinha feito desse jeito: UPDATE imagem SET nome_imagem='testado' WHERE id_imagem=(SELECT s.id_imagem FROM slide AS s, imagem AS i WHERE i.id_imagem=s.id_imagem AND s.id_slide='8'); só que aparece o seguinte erro sql: Error Code: 1093. You can't specify target table 'imagem' for update in FROM clause No que estou errando? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 18, 2013 Voce nao pode especificar uma tabela alvo numa clausula from. A tabela do select não pode ser a do update. Em Oracle resolvo isto fazendo um bloco PLSQL em MySql não sei, talvez a solução seja: Fazer o select e jogar o resultado numa variavel Fazer o UPDATE em cima desta variavel. Compartilhar este post Link para o post Compartilhar em outros sites
jmurilof 0 Denunciar post Postado Junho 18, 2013 Deu certo, eu fiz assim! $sql_imagem_slide = mysql_query("SELECT i.id_imagem FROM slide AS s, imagem AS i WHERE i.id_imagem=s.id_imagem AND s.id_slide='$id'"); depois usei mysql_fetch_array: while($res_imagem= mysql_fetch_array($sql_imagem_slide)){ $id_imagem_slide = $res_imagem[0]; depois chamei o meu $id_imagem_slide na update: $alterar = mysql_query("UPDATE imagem SET nome_imagem='$nome_final' WHERE id_imagem='$id_imagem_slide'");} Muito obrigado! Compartilhar este post Link para o post Compartilhar em outros sites