使用“选择查询"更新表带有 where 子句

Update Table with a quot;Select queryquot; with a where clause(使用“选择查询更新表带有 where 子句)
本文介绍了使用“选择查询"更新表带有 where 子句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想实现以下目标:

表(my_table)的当前状态

 id        totalX          totalY          totalZ               
 --------- --------------  --------------  --------------       
         9             34              334             0      
        10              6               56             0      
        11             21              251             0      
        12              3               93             0   

(my_table2)的查询结果

select id,count(*) as total FROM my_table2 WHERE column_2 = 1 GROUP BY id

 id        total               
 --------- --------------       
         9            500      
        10            600      
        11            700      
        12            800  

表 (my_table) 的预期状态

 id        totalX          totalY          totalZ               
 --------- --------------  --------------  --------------       
         9             34              334             500      
        10              6               56             600      
        11             21              251             700      
        12              3               93             800    

这可以在一个更新查询中完成吗?我正在寻找 RHEL 5.0 上的 Sybase ASE 12.5

Can this be done in ONE update query ? I am looking for Sybase ASE 12.5 on a RHEL 5.0

我找不到 Sybase 的解决方案,但该问题的当前答案适用于 MS SQL Server..

I coudn't find the solution for Sybase, but the current answer to the question works on MS SQL Server..

推荐答案

   update 
          my_table 
   set 
      my_table.totalZ = t.total 
   FROM
    my_table mt
    INNER JOIN 
       (select id,count(*) as total 
       FROM my_table2 
      WHERE column_2 = 1 GROUP BY id) t
   on mt.id  = t.id

更新 在 MS SQL Server 中,这就是你要做的.OP 指出这在 Sybase 中不起作用.

UPDATE In MS SQL Server this is what you would do. The OP noted this doesn't work in Sybase.

这篇关于使用“选择查询"更新表带有 where 子句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)