Alt sorguda bulunan bir tabloyu nasıl güncelleştirebilirim? 2 aşamada yapmak zorunda mıyım? (geçici bir tablo oluşturun - seçili verileri buraya yerleştirin ve son tabloyu güncelleştirin)Bir güncelleştirme ile seçme içinden geçiş yapma Bir
Her CTN için ağ etiketiyle invoiceLine tablosunu güncelleştirmeye çalışıyorum.
Nihai sonuç şöyle olacaktır:
invoiceLine
ctn network 1234 network1 2345 network2 3456 network1
Aşağıdaki tablolar vardır:
invoiceLine
ctn network 1234 null 2345 null 3456 null
terminali
ctn network 1234 1 2345 2 3456 1
ağ
id label 1 network1 2 network2
bir seçme çalışabilir ama birlikte güncellemek için nasıl emin değilim bir katılmak:
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
ama MySQL t Bir
Hata Kodu hrows: 1093 Sen from yan tümce
Olası kopya halinde güncelleme için hedef tablo 'invoiceLine' belirleyemezsiniz [Nasıl GÜNCELLEME sorgusunda JOIN kullanmak ?] (http://stackoverflow.com/questions/15209414/how-to-use-join-in-update-query) –