当前位置: 首页 > 面试题库 >

3在UPDATE查询中如何做表JOIN?

尉迟子民
2023-03-14
问题内容

我问了一个问题,得到了答复,这很有帮助。

   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

现在,如果有3张表涉及这样的事情,我正在寻找这样做。

    UPDATE tableC c JOIN tableB b JOIN tableA a

我的问题基本上是…这可以在一个UPDATE语句上进行3个表联接吗?正确的语法是什么?谢谢。我会做…

 JOIN tableB, tableA
 JOIN tableB JOIN tableA

问题答案:

答案是yes你可以

这样尝试

UPDATE TABLE_A a 
    JOIN TABLE_B b ON a.join_col = b.join_col AND a.column_a = b.column_b 
    JOIN TABLE_C c ON [condition]
SET a.column_c = a.column_c + 1

编辑:

对于常规更新,请加入:

   UPDATE TABLEA a 
   JOIN TABLEB b ON a.join_colA = b.join_colB  
   SET a.columnToUpdate = [something]


 类似资料:
  • 问题内容: 如何在SQL Server 2005中回滚UPDATE查询? 我需要在SQL中执行此操作,而不是通过代码。 问题答案: 如果您已经执行了查询并想回滚它,那么不幸的是,唯一的选择就是还原数据库备份。如果您使用的是完全备份,则应该能够将数据库还原到特定的时间点。

  • 现在,如果有3个表涉及这样的东西,我希望这样做。 我的问题基本上是...是否可以在语句上执行3个表联接?正确的语法是什么?谢谢你。我做...

  • 问题内容: 在SQL Server Management Studio中,我做了下面的查询。 不幸的是,我忘了取消注释该条款。 1647行已更新,而不是4行。 如何撤消上一条语句? 不幸的是,我只完成了对这1647行的翻译,并做了最后的更正 ,因此没有备份 。 有一个交易协议,至少我希望如此。 问题答案: 可以通过发出以下命令来还原未提交的事务 但是,如果您在自动提交模式下运行,则无能为力。

  • 问题内容: 我有以下查询: 目前,此查询大约需要93分钟才能完成。我想找到使它更快一点的方法。 该表大约有506,000行,其中大约490,000行包含的值,因此我怀疑我是否可以利用此处的任何索引。 该表(未压缩时)中包含约46 gigs的数据,但是该数据的大部分位于名为的文本字段中。我相信简单地加载和卸载许多页面会导致速度下降。一个想法是做一个新表 只是 在和现场,并保持尽可能小。但是,测试该理

  • 我有表my_employees,my_departments,my_empdetails,my_periods 和下面的查询在Oracle的旧join语句中。我想用mysql语法转换它,但我无法实现。请帮助

  • 问题内容: 这是SQL中的JOIN问题更新语句的扩展,但是我试图使用Spring Data JPQL。 我正在尝试将更新与JPQL中的JOIN一起使用,如下所示 但是,我得到如下错误 org.hibernate.hql.internal.ast.QuerySyntaxException:期望“设置”,找到“ JOIN” JPQL中无法进行UPDATE和JOIN吗?有什么选择。谢谢 问题答案: 该J