相关疑难解决方法(0)

如何在UPDATE查询中执行3个表JOIN?

我问了一个问题并得到了这个答复.

   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)

mysql join

451
推荐指数
4
解决办法
44万
查看次数

如何使用Join更新select

如何更新子查询中也存在的表?我需要分2个阶段吗?(创建一个临时表 - 将所选数据放入其中,然后更新最终表)

我正在尝试使用每个CTN的网络标签更新invoiceLine表.

最终结果将是:

我有以下表格:

我可以运行一个选择,但我不知道如何使用连接更新:

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'

mysql sql select join sql-update

16
推荐指数
2
解决办法
3万
查看次数

标签 统计

join ×2

mysql ×2

select ×1

sql ×1

sql-update ×1