文章目录

  • 以一张表的查询结果作为另一张表的插入数据
  • 拓展按某个关联列用一张表的数据更新另一张表
  • 事件
  • 总结
  • 拓展
  • 来源


以一张表的查询结果作为另一张表的插入数据

代码:

insert into T_Info_OA_BusinessCardDetail  select newid() BusinessCardDetailId,* from T_Info_OA_BusinessCardFolder where BusinessCardFolderId not in ( select BusinessCardFolderId  from T_Info_OA_BusinessCardDetail)

拓展按某个关联列用一张表的数据更新另一张表

事件

写MySQL语句时,想要实现“使用某一张表中的字段值,更新另一张表中的字段值”的功能

两张表结构如下:

t1表:

mysql 将一个select 查询结果作为表继续查询 sql结果作为另一次查询_sql


t2表:

mysql 将一个select 查询结果作为表继续查询 sql结果作为另一次查询_database_02


查询资料后,写出如下语句:

update t1
set aaa=t2.aaa
from t2
where bbb=t2.bbb;

执行后报错:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘from t2
where bbb=t2.bbb’ at line 3

在查询资料后发现,上述写法是SQL Server的写法,所以在MySQL中会报错

在MySQL中类似的写法为:

update t1,t2
set t1.aaa=t2.aaa
where t1.bbb=t2.bbb;

总结

MySQL中,使用某一张表中的字段值,更新另一张表中的字段值的写法之一:

update tabel_dest,table_src
set tabel_dest.attr = table_src.attr
where condition;

SQL Server中,使用某一张表中的字段值,更新另一张表中的字段值的写法之一:

update tabel_dest
set attr = table_src.attr
from table_src
where condition;

拓展

oracle写法

merge into 目标表 a
 
using 源表 b
 
on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……)  
 
when matched then update set a.字段=b.字段 --目标表别称a和源表别称b都不要省略
 
when  not matched then insert (a.字段1,a.字段2……)values(b.字段1,b.字段2……) --目标表别称a可省略,源表别称b不可省略

Postgres写法

UPDATE call_mz_queue_temporary aa
SET medical_card=bb.out_pat_code
FROM bbb bb
WHERE aa.out_pat_id=bb.out_pat_id AND aa.mz_queue_id BETWEEN '3298' AND '3460'

来源

【SQL】按某个关联列用一张表的数据更新另一张表

没有粉丝,没有评论,甚至连读者都没有。因为自己写的烂,因为自己水平有限,所以自己的作品一经发出就石沉大海了,得不到任何的回信,就好像自己写的东西是给自己看的。自己的作品怎么看都好像不够完美,全身的毛病,所以读者不喜欢也很正常对吧!

其实最让我开心的是有些读者们夸我文笔不错,或许是有人第一次这样夸我的缘故吧!又或许是我写的东西没什么人认可,我感受到了一种前所未有的激动,对于未来的憧憬,对自己写下去的动力。

因为有你们,我的写作之路才不孤独,因为有你们,我才能坚持到现在,如果有一天我真的写出圈了,或许我们可以整个交流会之类的,到时候促膝长谈。

“书山有路勤为径,学海无涯苦作舟。”写作苦是苦了点,整得我差点就想放弃了,不过还好有你们。我也不急着成功,因为没有个几十年如一日的坚持,哪能轻易成功?

茫茫文海无人意,天下有君识吾心。文海很孤独,但是有诸君,便足以令我至千里。