两个表匹配,匹配上把一张表的值复制到另一张表的sql语句怎么写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个表匹配,匹配上把一张表的值复制到另一张表的sql语句怎么写相关的知识,希望对你有一定的参考价值。

A 表
NUM VALUE1 VALUE2
123000 测试1 测试2
123001 测试3 测试4
123002 测试5 测试6
123003 测试7 测试8

B 表
NO VALUE3 VALUE4
12300024222 测试1 测试2
12300346433 测试7 测试8
12300268675 测试5 测试6
12300087538 测试1 测试2

有这样两张表,A和B,现在需要将B表中NO字段的值跟A表的NUM字段对比,如果B表的NO的字段包含了A表的某一行的NUM的值,则将A表这一行的VALUE1和VALUE2的值复制到B表的VALUE3和VALUE4中。
A表和B表的数据量都比较大,以上只是示例。

请问sql语句怎么写?

参考技术A update A,B set B.value3 = A.value1,B.value4=A.value2 where B.NO=A.NUM;

补充一句,这个是mysql语法追问

B.NO和A.NUM这两个是不会等于的啊
B表的NO字符比A表的MUN字符要多,B.NO包含在A.NUM中

追答

那你改一下where条件就好了啊

where B.NO LIKE CONCAT('%',A.NUM,'%');

以上是关于两个表匹配,匹配上把一张表的值复制到另一张表的sql语句怎么写的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中把一张表查询结果插入到另一张表中

根据查找值将值从一张表匹配并粘贴到另一张表中

sql如何查询出一张表的的某个字段数据更换成另一张表的字段数据

把一张表中某列数据更新到另一张表的某列

把一张表中某列数据更新到另一张表的某列

将整行从一张excel表复制到另一张表的下一个空行