Update - Firebird with Inner Join

Asked

Viewed 2,143 times

3

I need to perform an Update on multiple records at the same time, I’m trying to optimize the process!

SELECT tei.id_identificador, tes.uni_medida, tep.qtd_atual
FROM tb_estoque tes
INNER JOIN tb_est_tipo_item_sis tis ON tes.id_tipoitem = tis.id_tipoitem
INNER JOIN tb_est_identificador tei ON tes.id_estoque = tei.id_estoque
INNER JOIN tb_est_produto tep ON tei.id_identificador = tep.id_identificador;

inserir a descrição da imagem aqui

With Select above I got the data, however when trying to perform Update returns error!

I’m trying with the following instruction:

update tb_estoque, tb_est_produto
inner join tb_est_tipo_item_sis on tb_estoque.id_tipoitem = tb_est_tipo_item_sis.id_tipoitem
inner join tb_est_identificador on tb_estoque.id_estoque = tb_est_identificador.id_estoque
left join tb_est_produto on tb_est_identificador.id_identificador = tb_est_produto.id_identificador
set
    tb_estoque.uni_medida = [valor_pretendido],
    tb_est_produto.qtd_atual = [valor_pretendido]
where
    tb_est_identificador.id_identificador = [condicao_pretendida];

Error:

"Invalid token. Dynamic SQL Error. SQL error code = -104. Token Unknown - line 1, column 18. ,."

  • you are running this in Firebird, mysql, or both?

  • @Erickluz I am using IBEXPERT, Firebird!

1 answer

3


In Firebird you cannot accomplish this feat. The syntax of his update is:

update NOME_TABELA set
NOME_CAMPO = VALOR
where xyz = xyz

The JOIN will have to be with sub-select after the WHERE

Source

  • You can apply an example based on the table I put in the image?

Browser other questions tagged

You are not signed in. Login or sign up in order to post.