Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

UPDATE em determinados campos mysql

Estou com o seguinte case: Possuo a tabela "disciplinas_unidades_tecnicos" com as seguintes colunas:

  • disciplina_id;
  • unidade_id;
  • tecnico_id;

Inicialmente existiam duas unidades e foi adiciona uma terceira unidade, que resultou em problemas no vínculo " UNIDADES X TECNICOS "

NECESSITO DE AJUDA PARA FAZER OS SEGUINTES UPDATES:

Primeiramente seleciono a tabela :

SELECT disciplina_id FROM disciplinas_unidades_tecnicos WHERE ?

Gostaria de fazer SELECIONAR os retornos (linhas repetidas para 1, 2 e 3) com unidade_id= 1, 2 e 3 e a partir deste retorno fazer UPDATE nos registro disciplina_id aonde :

UPDATE disciplinas_unidades_tecnicos SET unidade_id = '0' where unidade_id = '2'

E Aonde:

UPDATE disciplinas_unidades_tecnicos SET unidade_id = '2' where unidade_id = '3'

  • SOMENTE DOS ids "disciplina_id" aonde tiverem 3 registros na tabela ou seja contemplarem unidade = 1, 2 e 3, porem não sei como fazer um select e um subselect para update nesse caso, não se CONTEMPLA retornos disciplina_id com repetição somente para unidade = 1 e 2, somente se existir unidade = 3 no retorno da disciplina_id .

Desde já agradeço qualquer ajuda e sugestão. Obrigado

1 resposta
solução!

Consegui fazendo a seguinte consulta e UPDATE:

update disciplines_units_technicians dut inner join ( select discipline_id from disciplines_units_technicians where unit_id in (1, 2, 3) group by discipline_id having count(*) = 3 ) dut1 on dut1.discipline_id = dut.discipline_id set dut.unit_id = case when dut.unit_id = 2 then 0 else 2 end where dut.unit_id in (2, 3)

Segue solução para posteriores consultas