¿Cómo puedo actualizar una tabla que también está presente en una subconsulta? ¿Tengo que hacerlo en 2 etapas? (crear una tabla temporal - poner los datos seleccionados en él y luego actualizar la tabla final)Cómo actualizar desde seleccionar con unir
Estoy tratando de actualizar la tabla invoiceLine con la etiqueta de la red para cada CTN.
El resultado final sería:
invoiceLine
ctn network 1234 network1 2345 network2 3456 network1
Tengo las siguientes tablas:
invoiceLine
ctn network 1234 null 2345 null 3456 null
terminal de
ctn network 1234 1 2345 2 3456 1
red
id label 1 network1 2 network2
puedo correr un selecto pero no estoy seguro de cómo actualizar con una combinación:
update invoiceLine
inner join terminal on terminal.ctn = invoiceLine.ctn
set invoiceLine.network =
(
select network.label
from invoiceLine
inner join terminal on terminal.ctn = invoiceLine.ctn
inner join network on network.id = terminal.network
)
where invoiceLine.ctn = terminal.ctn
pero MySQL t hrows un Código
de error: 1093. No se puede especificar la tabla de destino 'invoiceLine' para la actualización en la cláusula DE
duplicado posible de [Modo de empleo unirse a consulta UPDATE ?] (http://stackoverflow.com/questions/15209414/how-to-use-join-in-update-query) –