Ir para conteúdo

POWERED BY:

Arquivado

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

leooizepi

Update com select da mesma tabela

Recommended Posts

e ae galera... bom dia!

 

to tentando fazer um update de uma tabela X, mais eu tenho q fazer uma select da mesma tabela X para atualizar!

 

UPDATE st_curso SET
                   CUR_NOME_TURMA = CONCAT_WS(
				               ' ',
					       'Turma',
					       (
						SELECT
						      COUNT(*) as QTDE
						FROM
						      st_curso c2    
						WHERE
						      c2.CUR_COD_TREINAMENTO = '".$cod_treinamento."'
                                                GROUP BY
                                                      c2.CUR_COD_TREINAMENTO                            
						)+1
				     )					
WHERE
     CUR_COD = '".$cod_curso."'

e da o seguinte erro: You can't specify target table 'st_curso' for update in FROM clause

 

como solucionar?

 

valeu.. abraços!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao precisa desse c2 na frente do nome da tabela no FROM:

SELECT
                                                      COUNT(*) as QTDE
                                                FROM
                                                      st_curso    
                                                WHERE
                                                      CUR_COD_TREINAMENTO = '".$cod_treinamento."'
                                                GROUP BY
                                                      CUR_COD_TREINAMENTO     

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao precisa desse c2 na frente do nome da tabela no FROM:

SELECT
                                                      COUNT(*) as QTDE
                                                FROM
                                                      st_curso    
                                                WHERE
                                                      CUR_COD_TREINAMENTO = '".$cod_treinamento."'
                                                GROUP BY
                                                      CUR_COD_TREINAMENTO     

 

Coloquei como disse, mais continua dando o mesmo erro!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma pergunta.

O que eh esse CONCAT_WS ?

 

UPDATE st_curso SET
       CUR_NOME_TURMA = (
                                               ' ',
                                               'Turma',
                                               (
                                                SELECT
                                                      COUNT(*) as QTDE
                                                FROM
                                                      st_curso    
                                                WHERE
                                                      CUR_COD_TREINAMENTO = '".$cod_treinamento."'
                                                GROUP BY
                                                      cCUR_COD_TREINAMENTO                            
                                                )+1
                                     )                                  
WHERE
     CUR_COD = '".$cod_curso."'

E outra, aqui > COUNT(*) as QTDE

você nao pode por *, você tem que po só o campo que você precis do valor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como nao pode? executando essa consulta que tem o COUNT funciona normalmente, e CONCAT_WS, primeiro eu uso o separador e depois as strings que eu quero que concatena!

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.