Ir para conteúdo

Arquivado

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

theteo

Combinar UPDATE com SELECT na mesma query

Recommended Posts

Algo assim:
UPDATE tbl_usuarios SET data_liberada = ADDDATE(data_liberada, 30), qtde_prova = '0'
WHERE id_user =
(SELECT DISTINCT n.id_aluno as id_user FROM tbl_notas n, tbl_usuarios u
WHERE n.id_aluno = u.id_user AND
n.id_agenda = '1' AND
u.qtde_prova = '2')

 

 

ERRO:

 

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

 

LEMBRANDO que separadamente essas querys estão validadas.

 

Alguém pode dar uma luz ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta fazer dessa forma...

UPDATE tbl_usuarios u,
  (
    SELECT DISTINCT n.id_aluno as id_user FROM tbl_notas n, tbl_usuarios u WHERE n.id_aluno = u.id_user AND n.id_agenda = '1' AND u.qtde_prova = '2'
  ) as tabela_ficticia
SET data_liberada = ADDDATE(data_liberada, 30), qtde_prova = '0' 
WHERE id_user = tabela_ficticia.id_user

Aprendi essa a alguns dias tentando ajudar outra pessoa aqui no fórum, to aprendendo muito aqui! (Mas isso não quer dizer que vá funcionar corretamente, hehe)

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Tenta fazer dessa forma...

UPDATE tbl_usuarios u,
  (
    SELECT DISTINCT n.id_aluno as id_user FROM tbl_notas n, tbl_usuarios u WHERE n.id_aluno = u.id_user AND n.id_agenda = '1' AND u.qtde_prova = '2'
  ) as tabela_ficticia
SET data_liberada = ADDDATE(data_liberada, 30), qtde_prova = '0' 
WHERE id_user = tabela_ficticia.id_user

Aprendi essa a alguns dias tentando ajudar outra pessoa aqui no fórum, to aprendendo muito aqui! (Mas isso não quer dizer que vá funcionar corretamente, hehe)

 

 

 

Valeu cara. Depois da direção o resultado ficou assim:

UPDATE tbl_usuarios,
(SELECT DISTINCT n.id_aluno FROM tbl_notas n, tbl_usuarios u
WHERE 
n.id_aluno = u.id_user AND 
n.id_agenda = '1' AND 
u.qtde_prova = '2') 
as ID
SET data_liberada = ADDDATE(data_liberada, 30), 
qtde_prova = '0' WHERE id_user = ID.id_aluno

SHOW DE BOLA.

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.