精华内容
下载资源
问答
  • 联合update
    2018-07-19 15:58:00
    UPDATE    A
    SET A.c2 =B.c3
    from A inner join B on A.c1=B.c1


    多表from子句后面

    更多相关内容
  • 内容简介本文主要展示了在MySQL中,使用两表联合的方式来更新其中一个表字段值的SQL语句。也就是update table1 join table2 on table1.col_name1=table2.col_name1set col_name1=expr1 [, col_name2=expr2 ...]...

    内容简介

    本文主要展示了在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表

    9327aa4ad7f56a4bf172219f73fe80c3.png

    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 ASt1INNER JOIN ( SELECT second_level_target, MAX( third_star_setting ) AS third_star_setting FROM t_performance_evaluation WHERE second_level_target = '专利申请量') t2ON t1.second_level_target =t2.second_level_targetSET t1.second_star_setting =t2.third_star_settingWHEREt1.second_level_target= '专利申请量';

    结果如下图:

    3484e85adf51bf6a8fd91f2802878a36.png

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

    展开全文
  • Sqlite数据多表联合update

    千次阅读 2019-11-27 16:35:02
    其实在Mysql中,多表联合update不是什么难事。 语法: 1 UPDATE table_references SET col_name1=expr1 [, col_name2=expr2 …] [WHERE where_definition] 示例: 1 UPDATE table1, table2 SET table1.value=table2....

    其实在Mysql中,多表联合update不是什么难事。

    语法:

    1
    UPDATE table_references SET col_name1=expr1 [, col_name2=expr2 …] [WHERE where_definition]
    示例:

    1
    UPDATE table1, table2 SET table1.value=table2.value, a.type=b.type WHERE table1.sid=table2.sid;
    同样的,在SqlServer中也可以很简单的用联合来实现:

    1
    UPDATE t1 SET col1=t2.col1 FROM table1 t1 INNER JOIN table2 t2 ON t1.col2=t2.col2;
    但是,很可惜,在Sqlite中却不支持这样的语法,那是不是Sqlite中就不支持多表联合update呢?当然不是的,其实Sqlite中多表联合update也可以实现,

    首先,Sqlite里面有一个新鲜玩意“INSERT OR REPLACE”,跟Mysql类似,这个结构能够保证在存在的情况下替换,不存在的情况下更新,用这个机制就可以轻松实现Update…From了。
    

    1
    INSERT OR REPLACE INTO t1(key, Column1, Column2) SELECT t2.key, t2.Column1,t2.Column2 FROM t2, t1 WHERE t2.key = t1.key;
    这种方法要避免插入操作,首先要确保是依照主键执行的更新,如果where条件不是主键可能就有点麻烦了。

    要是不是主键的更新怎么办能?另外还有其他的办法吗?我们在这中情况下只能向典型的Update…where寻求帮助了,下面是一个例子:
    

    1
    UPDATE table1 SET col1 = 1 WHERE table1.col2 = (SELECT col2 FROM table2 WHERE table2.col2 = table1.col2 AND table2.col3 = 5);
    参考
    https://www.cnblogs.com/yzpopulation/p/4916898.html

    展开全文
  • 下面我建两个表,并执行一系列sql语句,仔细观察sql执行后表中数据的变化,很容易就能理解多表联合更新的用法student表 class表1. 执行 UPDATE student s , class c SET s.class_name='test00',c.stu_name='test00' ...

    下面我建两个表,并执行一系列sql语句,仔细观察sql执行后表中数据的变化,很容易就能理解多表联合更新的用法

    student表 class表

    9d540b531bfc12f160a13812cb1b8a05.png

    7ef980ba81edcb143c235f3a925ed577.png

    1. 执行 UPDATE student s , class c SET s.class_name='test00',c.stu_name='test00' WHERE s.class_id = c.id

    student表 class表

    b973e84d70e678e2cd086cd7d707e323.png

    988cbb34175c0c4cc90796745dd93149.png

    2. 执行 UPDATE student s JOIN class c ON s.class_id = c.id SET s.class_name='test11',c.stu_name='test11'

    student表 class表

    2e96d98bfb6f37298fed6511269f684c.png

    7a03f8c5d316e6037781964a860d85e6.png

    3. 执行 UPDATE student s LEFT JOIN class c ON s.class_id = c.id SET s.class_name='test22',c.stu_name='test22'

    student表 class表

    8d06c103b1c28c50b527b36406bde44a.png

    13b1fa433f2f2d5b988079be4051a91f.png

    4. 执行 UPDATE student s RIGHT JOIN class c ON s.class_id = c.id SET s.class_name='test33',c.stu_name='test33'

    student表 class表

    9249b81873d478d0d28704e57ff2b0ae.png

    1b948f5e2478ffe99db9947dff76a308.png

    5. 执行 UPDATE student s JOIN class c ON s.class_id = c.id SET s.class_name=c.name , c.stu_name=s.name

    student表 class表

    de67d3097e709fd9dac15fc3b2b58874.png

    9af5b593c188d8c19379c2fed186ed73.png

    知识点补充:

    mysql多表关联update

    日常的开发中一般都是写的单表update语句,很少写多表关联的update。

    不同于SQL Server,在MySQL中,update的多表连接更新和select的多表连接查询在使用的方法上存在一些小差异。

    来看一个具体的例子。

    update orders o

    left join users u

    on o.userId = u.id

    set o.userName = u.name;

    在上面的例子中,update关键字后跟的是一个多表关联的结果集,MySQL直接将这个多表关联的结果集看做一个单表,再在这个单表的基础上做常规的update操作。

    和SQL Server的细小差别在于,SQL Server的set子句跟在要更新的具体表之后,MySQL的set语句则是跟在要更新的结果集之后(要更新的具体表在set语句中设置)。

    总结

    到此这篇关于Mysql update多表联合更新的方法小结的文章就介绍到这了,更多相关mysql update多表联合更新内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

    展开全文
  • 这样一一对应起来,如果一个一个填充上去的话,数据量达到几千上万级别,还不累死,那么这就涉及到了update语句的联合更新。直接发sql吧: #第一种方式 UPDATE class AS c INNER JOIN student AS s ON c.id = s...
  • 主要介绍了ThinkPHP5联合(关联)查询、多条件查询与聚合查询,结合实例形式总结分析了thinkPHP5常用查询操作技巧,需要的朋友可以参考下
  • ORACLE两表联合更新是经常会遇到的情况,我们经常会使用的方法是这样的:update table_aset …where … and exists(select 1 from table_b where table_a.col = table_b.col and …)这可以说是oracle下两表联合更新...
  • mysql 多表联合update

    2017-06-03 20:52:34
    mysql 的表要update的时候,有的时候需要第二张表。 比如,要把user表的name字段给设置值,但是这个值在student表。可以这么来update user join student on user.id=student.id set user.name=student.name
  • SQLServer Update多表联合更新的方法

    千次阅读 2020-10-28 06:27:20
    update table1 set apple = t2.pear from table1 t1,table2 t2 where t1.tsno = t2.tsno
  • 主要介绍了SQL Update多表联合更新的方法,需要的朋友可以参考下
  • mysql三表连接update

    2021-01-19 21:41:00
    a,c,c_a三个表,c_a是中间表,要变更a表的download_flag字段为1,且c表的school_id = 1084,同时a表的file_name值为文件的UPDATE a SET download_flag = 1WHERE a.`id`IN(SELECT a_id FROM c_aWHERE c_id IN(SELECT...
  • Oracle 关联更新 update

    千次阅读 2022-04-16 23:15:36
    Oracle 关联更新 update
  • 业务上有如下的需求,UTC_DATA, COUNTRY_UTC,SITE_UTC 分别是UTC数据表,COUNTRY UTC表和SITE UTC表, UTC_DATA .UTC的值等于 COUNTRY_UTC.UTC - SITE_UTC.UTC,我写的Update语句如下: Update UTC_DATA A SET ...
  • 1)最简单的形式update customers a//使用别名set customer_type='01'//01 为vip,00为普通where exists (select 1 from tmp_cust_city b where b.customer_id=a.customer_id)2)两表(多表)关联update,被修改值由另一...
  • 项目中用到了Oracle Update多表关联更新,简单记录一下写法一:update TBL_COMPANY_USER cardset card.status = 9where card.company_id =(select company.IDfrom TBL_COMPANY_INFO companywhere company.CODE = '...
  • sql server中联合两个表update数据

    千次阅读 2017-07-10 10:15:14
    update T_wStock set T_wStock.GoodsStyle = temp1.htype from T_wStock,temp1 where T_wStock.GoodsCode = temp1.num and T_wStock.CustCode='GD01' SELECT * FROM dbo.T_wStock select * from T_wStock where...
  • mysql多表关联update

    2020-12-29 11:20:25
    日常的开发中一般都是写的单表update语句,很少写多表关联的update。 在MySQL中,update的多表连接更新和select的多表连接查询在使用的方法上存在一些小差异。 来看一个具体的例子。 update table1 t1 inner join ...
  • update多表联合更新

    万次阅读 2019-01-17 23:43:49
    t_student表和t_class表...UPDATE db_shop.t_student s,db_shop.t_class c SET s.class_name=c.name,c.stu_name=s.name WHERE s.class_id=c.id --等效于 UPDATE db_shop.t_student s JOIN db_shop.t_class c SET ...
  • update course a,lesson b set a.CourseName=b.LessonName where a.LessonGuid=b.LessonGuid; alter table member modify CurrentLevel varchar(50); mssql update a set a.CourseName=b.LessonName f
  • SQL Update多表联合修改

    2022-06-09 08:32:43
    SQL Update多表联合修改

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 87,441
精华内容 34,976
关键字:

联合update