PS:来源表:t_source目标表:t_target

第一种
来源表和目标表字段完全一致

insert into t_target  select * from t_source;

第二种
来源表和目标表字段部分一致,只想导入来源表部分字段到目标

insert into t_target(字段1,字段2,字段3, …)  
select 字段1,字段2,字段3, … from t_source;

三种
需要导入目标表中存在数据

insert into t_target (字段1, 字段2, …)  
 SELECT 字段1, 字段2, …  FROM t_source  
 WHERE not exists (select * from t_target 
 where t_target.比较字段 = t_source.比较字段); 

下面是一个完整示例展示如何一张名为 source_table 的源表的数据更新一张名为 target_table目标表:

创建目标
CREATE TABLE target_table (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    age INT
);

— 确定连接条件
ALTER TABLE target_table ADD COLUMN source_table_id INT;

UPDATE target_table
SET source_table_id = source_table.id
FROM target_table
INNER JOIN source_table
ON target_table.name = source_table.name;

更新数据
UPDATE target_table
INNER JOIN source_table
ON target_table.source_table_id = source_table.id
SET target_table.age = source_table.age;

以上是一个简单示例,你可以根据实际情况进行修改扩展

总结
通过以上步骤我们可以一张表的数据更新到另一张表。首先,我们需要创建一个目标表来接收数据,然后确定源表和目标表之间的连接条件最后使用 UPDATE 语句将数据更新到目标表。
 

 

MySQL查询结果复制到新表的方法(更新插入)

MySQL中可以查询结果复制到另外的一张表中复制的话通常有两种情况,一种是更新已有的数据,另一种是插入一条记录。下面通过例子说明。首先构建两个测试表。

表t1:

查看图片

表t2:

查看图片

1、如果t2表中存在score值,将score更新到t1表中方法如下

UPDATE t1,t2
SET t1.score = t2.score
WHERE t1.id = t2.id AND t2.score IS NOT NULL

这就是将查询结果作为条件更新一张表,当然,t2也可以是更为复杂一个查询结果而不是一个具体的表。

2、将t1表的username更新至t2表,将t2表的score更新至t1表。方法如下

UPDATE t1,t2
SET t1.score = t2.score,t2.username = t1.username
WHERE t1.id = t2.id

这个方法其实跟上面的方法类似,可以同时更新两个表的数据,即做表部分数据的互相复制、更新。

3、将t2表的查询结果插入到t1表中方法如下

INSERT INTO t1(id,username,score)
SELECT t2.id,t2.username,t2.score FROM t2 where t2.username = ‘lucy

前面两种方式是更新表的记录,这种方式插入一条新的记录。其实,从脚本可以看出,这个方法就是将查询插入两个步骤合二为一。

一个表更新另一个

1、更新一个字段
方法
   update table1 set field1=table2.field1 from table2
    where table1.id=table2.id

方法二
将两张表以内连接方式进行查询更新

 UPDATE tableName1 t1
    LEFT JOIN tableName2 t2 ON t2.id = t1.id 
    SET t1.lpEntityType2 = t2.lpEntityType2 

方法三
update A m,B mp set m.job_type = mp.job_type where mp.mobile= m.mobile;

2、更新多个字段
方法一
   update B, A
    set 
        B.username = A.username,
        B.phone = A.phone
    where 
        B.userId = A.userId

方法二
将两张表以内连接方式进行查询更新

update 
    B join A on B.userId=A.userId
set 
    B.username = A.username,
    B.phone = A.phon
 

MYSQL 更新一个表字段为另外一张表字段

1、UPDATE m_node_device mnd SET mnd.enterprise_id = (SELECT md.enterprise_id FROM m_device md WHERE mnd.device_id = md.id)

2、–     更新表字段为查询结果中的某一个字段
UPDATE m_device md,
(
SELECT
    mi.img_url AS aa,
    mi.device_id AS bb 
FROM
    m_device_img mi
    INNER JOIN m_device_type_attr ma ON ma.id = mi.device_type_attr_id 
WHERE
    ma.attr_name = ‘设备铭牌’ 
    ) b 
    SET md.nameplate_img = b.aa 
WHERE
    md.id = b.bb 
    AND md.nameplate_img = ” and md.is_deleted = 0
 

原文地址:https://blog.csdn.net/eagle89/article/details/133925208

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_25248.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注