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

  • 相关阅读:
    redis 使用
    VS----id为xxxx的进程当前未运行 问题
    bootstrap--------bootstrap table显示行号
    js--------js获取当前时间,返回日期yyyy-MM-dd
    CLR via C#--------CLR的执行模式
    Python链表成对调换
    Python去除列表中的重复元素
    MySQL索引背后的数据结构及算法原理
    Python 垃圾回收机制
    Python 里的拷贝
  • 原文地址:https://www.cnblogs.com/codecat/p/10935460.html
Copyright © 2011-2022 走看看