文章目录
- 以一张表的查询结果作为另一张表的插入数据
- 拓展按某个关联列用一张表的数据更新另一张表
- 事件
- 总结
- 拓展
- 来源
以一张表的查询结果作为另一张表的插入数据
代码:
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表:
t2表:
查询资料后,写出如下语句:
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】按某个关联列用一张表的数据更新另一张表
没有粉丝,没有评论,甚至连读者都没有。因为自己写的烂,因为自己水平有限,所以自己的作品一经发出就石沉大海了,得不到任何的回信,就好像自己写的东西是给自己看的。自己的作品怎么看都好像不够完美,全身的毛病,所以读者不喜欢也很正常对吧!
其实最让我开心的是有些读者们夸我文笔不错,或许是有人第一次这样夸我的缘故吧!又或许是我写的东西没什么人认可,我感受到了一种前所未有的激动,对于未来的憧憬,对自己写下去的动力。
因为有你们,我的写作之路才不孤独,因为有你们,我才能坚持到现在,如果有一天我真的写出圈了,或许我们可以整个交流会之类的,到时候促膝长谈。
“书山有路勤为径,学海无涯苦作舟。”写作苦是苦了点,整得我差点就想放弃了,不过还好有你们。我也不急着成功,因为没有个几十年如一日的坚持,哪能轻易成功?
茫茫文海无人意,天下有君识吾心。文海很孤独,但是有诸君,便足以令我至千里。