Как обновить таблицу, которая также присутствует в подзапросе? Нужно ли делать это в 2 этапа? (создать временную таблицу - поместить в нее выбранные данные, а затем обновить итоговую таблицу)
Я пытаюсь обновить таблицу invoiceLine с меткой сети для каждой CTN.
Конечный результат должен быть следующим:
invoiceLine
ctn network
1234 сеть1
2345 сеть2
3456 сеть1
У меня есть следующие таблицы:
invoiceLine
ctn network
1234 null
2345 ноль
3456 null
terminal
ctn network
1234 1
2345 2
3456 1
сеть
id label
1 сеть1
2 сеть2
Я могу выполнить select, но я не уверен, как обновить с помощью join:
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
но MySQL выбрасывает
Код ошибки: 1093. Вы не можете указать целевую таблицу 'invoiceLine' для обновления в предложении FROM