zoukankan      html  css  js  c++  java
  • 一个MySQL中两表联合update的例子(并带有group by分组)

    内容简介

    本文主要展示了在MySQL中,使用两表联合的方式来更新其中一个表字段值的SQL语句。

    也就是update table1 join table2 on table1.col_name1=table2.col_name1 set col_name1=expr1 [, col_name2=expr2 ...] [where where_definition]的使用方法。

    本例中,关联表中使用了group by分组。

    表字段说明

      t_performance_evaluation表

    first_level_target为一级分类,second_level_target为二级分类,second_star_setting为二级分类的星级值

    third_level_target为三级分类,third_star_setting为三级分类的星级值

    更新需求:

    更新一个二级分类的星级值(second_star_setting),更新值为该二级分类下所有三级分类中取最大的星级值(third_star_setting取最大)

    如上图蓝底部分,将third_star_setting字段的4.5更新到second_star_setting字段(是三条记录都要更新哦)

    update语句

    更新SQL语句如下:

    #更新二级分类星级值(取该二级分类下所有三级分类中最大的星级值)
    UPDATE t_performance_evaluation AS t1
    INNER JOIN ( SELECT second_level_target, MAX( third_star_setting ) AS third_star_setting FROM t_performance_evaluation WHERE second_level_target = '专利申请量' ) t2 
        ON t1.second_level_target = t2.second_level_target 
    SET t1.second_star_setting = t2.third_star_setting 
    WHERE
        t1.second_level_target = '专利申请量';

    结果如下图:

    可以看到,second_star_setting的值(三条记录)都更新成了4.5

  • 相关阅读:
    rest-framework框架——解析器、ur控制、分页、响应器、渲染器
    rest-framework框架——认证、权限、频率组件
    rest-framework框架——视图三部曲
    rest-framework框架——APIView和序列化组件
    Django——CBV与FBV
    CRM——权限
    CRM——销售与客户
    CRM——讲师与学生
    CRM——起步
    jsp标签
  • 原文地址:https://www.cnblogs.com/codecat/p/10935460.html
Copyright © 2011-2022 走看看