PS:來源表:t_source、目標(biāo)表:t_target
第一種
來源表和目標(biāo)表字段完全一致
insert into t_target ?select * from t_source;
第二種
來源表和目標(biāo)表字段部分一致,只想導(dǎo)入來源表部分字段到目標(biāo)表
insert into t_target(字段1,字段2,字段3, ...) ?
select 字段1,字段2,字段3, ... from t_source;
第三種
只需要導(dǎo)入目標(biāo)表中不存在的數(shù)據(jù)
insert into t_target (字段1, 字段2, ...) ?
?SELECT 字段1, 字段2, ... ?FROM t_source ?
?WHERE not exists (select * from t_target?
?where t_target.比較字段 = t_source.比較字段);?
下面是一個(gè)完整的示例,展示了如何將一張名為 source_table 的源表的數(shù)據(jù)更新到一張名為 target_table 的目標(biāo)表:
-- 創(chuàng)建目標(biāo)表
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;
-- 更新數(shù)據(jù)
UPDATE target_table
INNER JOIN source_table
ON target_table.source_table_id = source_table.id
SET target_table.age = source_table.age;
以上是一個(gè)簡單的示例,你可以根據(jù)實(shí)際情況進(jìn)行修改和擴(kuò)展。
總結(jié)
通過以上步驟,我們可以將一張表的數(shù)據(jù)更新到另一張表。首先,我們需要?jiǎng)?chuàng)建一個(gè)目標(biāo)表來接收數(shù)據(jù),然后確定源表和目標(biāo)表之間的連接條件,最后使用 UPDATE 語句將數(shù)據(jù)更新到目標(biāo)表。
?
?
MySQL查詢結(jié)果復(fù)制到新表的方法(更新、插入)
MySQL中可以將查詢結(jié)果復(fù)制到另外的一張表中,復(fù)制的話通常有兩種情況,一種是更新已有的數(shù)據(jù),另一種是插入一條新記錄。下面通過例子來說明。首先構(gòu)建兩個(gè)測(cè)試表。
表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
這就是將查詢結(jié)果作為條件更新另一張表,當(dāng)然,t2也可以是更為復(fù)雜的一個(gè)查詢結(jié)果而不是一個(gè)具體的表。
2、將t1表的username更新至t2表,將t2表的score更新至t1表。方法如下:
UPDATE t1,t2
SET t1.score = t2.score,t2.username = t1.username
WHERE t1.id = t2.id
這個(gè)方法其實(shí)跟上面的方法類似,可以同時(shí)更新兩個(gè)表的數(shù)據(jù),即做表部分?jǐn)?shù)據(jù)的互相復(fù)制、更新。
3、將t2表的查詢結(jié)果插入到t1表中。方法如下:
INSERT INTO t1(id,username,score)
SELECT t2.id,t2.username,t2.score FROM t2 where t2.username = 'lucy'
前面兩種方式是更新表的記錄,這種方式是插入一條新的記錄。其實(shí),從腳本可以看出,這個(gè)方法就是將查詢和插入兩個(gè)步驟合二為一。
用一個(gè)表更新另一個(gè)表
1、更新一個(gè)字段
方法一
? ?update table1 set field1=table2.field1 from table2
? ? where table1.id=table2.id
方法二
將兩張表以內(nèi)連接的方式進(jìn)行查詢更新
?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、更新多個(gè)字段
方法一
? ?update B, A
? ? set?
? ? ?? ?B.username = A.username,
? ? ?? ?B.phone = A.phone
? ? where?
? ? ?? ?B.userId = A.userId
方法二
將兩張表以內(nèi)連接的方式進(jìn)行查詢更新
update?
?? ?B join A on B.userId=A.userId
set?
?? ?B.username = A.username,
?? ?B.phone = A.phone?
?
MYSQL 更新一個(gè)表字段為另外一張表字段
1、UPDATE m_node_device mnd SET mnd.enterprise_id = (SELECT md.enterprise_id FROM m_device md WHERE mnd.device_id = md.id)文章來源:http://www.zghlxwxcb.cn/news/detail-759396.html
2、-- ? ? 更新表字段為查詢結(jié)果中的某一個(gè)字段
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 = '設(shè)備銘牌'?
? ? ) b?
? ? SET md.nameplate_img = b.aa?
WHERE
? ? md.id = b.bb?
? ? AND md.nameplate_img = '' and md.is_deleted = 0
?文章來源地址http://www.zghlxwxcb.cn/news/detail-759396.html
到了這里,關(guān)于MySQL 從一個(gè)表中查出數(shù)據(jù)并插入到另一個(gè)表處理方案(詳細(xì))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!