我问了一个问题并得到了这个答复.
UPDATE TABLE_A a JOIN TABLE_B b
ON a.join_col = b.join_col AND a.column_a = b.column_b
SET a.column_c = a.column_c + 1
Run Code Online (Sandbox Code Playgroud)
现在我希望这样做,如果有3个表涉及这样的事情.
UPDATE tableC c JOIN tableB b JOIN tableA a
Run Code Online (Sandbox Code Playgroud)
我的问题基本上是...这可以在UPDATE声明中做3个表连接吗?它的正确语法是什么?谢谢.我做的......
JOIN tableB, tableA
JOIN tableB JOIN tableA
Run Code Online (Sandbox Code Playgroud) 如何更新子查询中也存在的表?我需要分2个阶段吗?(创建一个临时表 - 将所选数据放入其中,然后更新最终表)
我正在尝试使用每个CTN的网络标签更新invoiceLine表.
最终结果将是:
invoiceLine
ctn network
1234 network1
2345 network2
3456 network1
Run Code Online (Sandbox Code Playgroud)我有以下表格:
invoiceLine
ctn network
1234 null
2345 null
3456 null
Run Code Online (Sandbox Code Playgroud)终奌站
ctn network
1234 1
2345 2
3456 1
Run Code Online (Sandbox Code Playgroud)网络
id label
1 network1
2 network2
Run Code Online (Sandbox Code Playgroud)我可以运行一个选择,但我不知道如何使用连接更新:
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
Run Code Online (Sandbox Code Playgroud)
但MySQL抛出一个
错误代码:1093.您无法在FROM子句中为更新指定目标表'invoiceLine'