Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida com updates de subqueries e joins

Olá! Estou assistindo as aulas de SQL e me deparei com este update feito pelo professor:

use vendas_suco;
update vendedores a
inner join sucos_vendas.tabela_de_vendedores b
on a.matricula = substring(b.matricula, 3, 3)
set a.de_ferias = b.de_ferias;

Porém gostaria de saber se há alguma forma de transformar este update de join para um update de subquery. Estou tentando esta query:

update vendedores v
set v.de_ferias = tv.de_ferias
where v.matricula in (select substring(tv.matricula, 3, 3) 
from sucos_vendas.tabela_de_vendedores tv)

e está me retornando isto: Error Code: 1054. Unknown column 'tv.de_ferias' in 'field list'. Seria possível fazer essa conversão de join para subquery? Aqui vão as prints provando que o campo "de_ferias" de fato existe em ambas as tabelas:

sucos_vendas

Insira aqui a descrição dessa imagem para ajudar na acessibilidadee ambas são do tipo bit(1), apenas. Obrigado!

2 respostas
solução!

Olá, Leandro, tudo bem?

É possível sim realizar o UPDATE utilizando subquery, o erro ao executar a sua query é retornado, pois no momento de realizar a consulta, o campo tv.de_ferias não é reconhecido por ser um campo que está vindo da subquery.

  • Você pode executar a query da seguinte forma:
UPDATE vendedores v
SET v.de_ferias = (SELECT tv.de_ferias 
FROM sucos_vendas.tabela_de_vendedores tv WHERE v.matricula = tv.matricula);

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Obrigado!! Entendi perfeitamente.