如何更新也存在於子查詢中的表?我需要分兩個階段來完成嗎? (創建一個臨時表 - 將所選數據放入其中,然後更新決賽桌)如何通過加入從select中進行更新
我試圖用每個CTN的網絡標籤更新invoiceLine表。
最終的結果將是:
invoiceLine
ctn network 1234 network1 2345 network2 3456 network1
我有以下表格:
invoiceLine
ctn network 1234 null 2345 null 3456 null
終端
ctn network 1234 1 2345 2 3456 1
網絡
id label 1 network1 2 network2
我可以運行一個選擇,但我不知道如何使用更新聯接:
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 t hrows一個
錯誤代碼:1093您不能指定目標表「invoiceLine」的更新在FROM子句
的可能的複製[如何使用JOIN更新詢問?](http://stackoverflow.com/questions/15209414/how-to-use-join-in-update-query) –