MySQL從一個表中查出數據并插入到另一個表的詳細處理方案
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 的目標表:
-- 創(chuàng)建目標表
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;以上是一個簡單的示例,你可以根據實際情況進行修改和擴展。
總結
通過以上步驟,我們可以將一張表的數據更新到另一張表。首先,我們需要創(chuàng)建一個目標表來接收數據,然后確定源表和目標表之間的連接條件,最后使用 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.phone
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
到此這篇關于MySQL從一個表中查出數據并插入到另一個表的詳細處理方案的文章就介紹到這了,更多相關MySQL查出數據插入另一個表內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL怎么實現(xiàn)原子性的流程詳解(以UPDATE為例)
原子性是事務的其中一個特性,指的是要么全部執(zhí)行完,要么全都不執(zhí)行,這篇文章主要介紹了MySQL怎么實現(xiàn)原子性(以UPDATE為例)的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-08-08

