mysql如何將查詢結(jié)果插入到另一張表中
mysql將查詢結(jié)果插入到另一張表中
INSERT INTO
(1) 如果兩張表(導(dǎo)出表和目標(biāo)表)的字段一致,并且希望插入全部數(shù)據(jù),可以用這種方法:
INSERT INTO 目標(biāo)表 SELECT * FROM 來源表 WHERE 條件;
例:要將 student表插入到 newStudent 表中,則可以通過如下SQL語句實(shí)現(xiàn):
INSERT INTO newStudent SELECT * FROM student;
(2) 如果只希望導(dǎo)入指定字段,可以用這種方法:
INSERT INTO 目標(biāo)表(字段1,字段2,...) SELECT 字段1,字段2,... FROM 來源表 WHERE 條件;
這里需要注意:兩表的字段必須一致(位置一致,類型一致),否則會出現(xiàn)數(shù)據(jù)轉(zhuǎn)換錯誤。
例:臨時(shí)信息表部分字段信息中的數(shù)據(jù)同步到信息表中
INSERT INTO `litemall_company_enter` (user_id,`name`,`type`,`time`,number,price,link,brief,product,`code`,legal_person,phone,email,address,`sign`,add_time,update_time,deleted) SELECT -1,t.`name`,t.`type`,t.`time`,t.number,t.price,t.link,t.brief,t.product,t.`code`,t.legal_person,t.phone,t.email,t.address,1,NOW(),NOW(),0 FROM `litemall_company_enter_temporary` t WHERE t.id IN (2,4,6)
(3) 如果需要只導(dǎo)入目標(biāo)表中不存在的記錄,可以使用這種方法:
INSERT INTO 目標(biāo)表(字段1, 字段2, …) SELECT 字段1, 字段2, … FROM 來源表 WHERE NOT exists (SELECT * FROM 目標(biāo)表 WHERE 目標(biāo)表.比較字段 = 來源表.比較字段);
例:臨時(shí)信息表部分字段信息中的數(shù)據(jù)同步到信息表中,如果存在則不同步,不存在則同步
INSERT INTO `litemall_company_enter` (user_id,`name`,`type`,`time`,number,price,link,brief,product,`code`,legal_person,phone,email,address,`sign`,add_time,update_time,deleted) SELECT -1,t.`name`,t.`type`,t.`time`,t.number,t.price,t.link,t.brief,t.product,t.`code`,t.legal_person,t.phone,t.email,t.address,1,NOW(),NOW(),0 FROM `litemall_company_enter_temporary` t WHERE NOT EXISTS (SELECT * FROM `litemall_company_enter` e WHERE e.name=t.name AND e`.code=t.code )
SELECT INTO
SELECT INTO 語句從一個表中選取數(shù)據(jù),然后把數(shù)據(jù)插入另一個表中。常用于創(chuàng)建表的備份復(fù)件或者用于對記錄進(jìn)行存檔。
(1) 兩張表字段完全一致,全部字段數(shù)據(jù)進(jìn)行拷貝
SELECT * INTO student_backups FROM student WHERE class='高三(2)班';
(2) 拷貝指定字段
SELECT name,age,student_num INTO student_backups FROM student WHERE class='高三(2)班';
(3) IN 子句可用于向另一個數(shù)據(jù)庫 Backup.mdb 中拷貝表
SELECT * INTO student IN 'Backups.mdb' FROM student WHERE class='高三(2)班';
(4) 多表關(guān)聯(lián)選取數(shù)據(jù)
SELECT s.name,t.id INTO teacher_student_backups FROM student s INNER JOIN teacher t ON s.tid=t.id;
mysql查詢結(jié)果的數(shù)據(jù)新增到另一張表里
1.把B表的數(shù)據(jù)查詢出新增到A表去
`INSERT INTO a(id,name)? SELECT ?b.id as id,b.name as name FROM b;`?
2.B表的字段滿足不了A的情況下
‘name’是對應(yīng)type ,now()是對應(yīng)的create_date
INSERT INTO dim_attach (type,bill_id,url,create_date) select ?'name', ?a.id AS bill_id, a.head_address AS url,now() FROM ?dim_people a
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL數(shù)據(jù)庫CPU飆升到100%的詳細(xì)解決方案
在監(jiān)控線上數(shù)據(jù)庫的運(yùn)行是否安全、正常的過程中,cpu使用率是一個重要的指標(biāo),一旦cpu使用率飆升至90%+甚至達(dá)到100%,必然會對數(shù)據(jù)庫的正常工作產(chǎn)生影響,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫CPU飆升到100%的詳細(xì)解決方案,需要的朋友可以參考下2023-05-05
MySQL常用SQL語句總結(jié)包含復(fù)雜SQL查詢
今天小編就為大家分享一篇關(guān)于MySQL常用SQL語句總結(jié)包含復(fù)雜SQL查詢,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02
關(guān)于SQL語句中的AND和OR執(zhí)行順序遇到的問題
在SQL語句中的AND和OR執(zhí)行順序中我們經(jīng)常會遇到一些問題,下面有簡單的解決方法,小編來和大家一起來看看2019-05-05
mysql oracle和sqlserver分頁查詢實(shí)例解析
最近簡單的對oracle,mysql,sqlserver2005的數(shù)據(jù)分頁查詢作了研究,把各自的查詢的語句貼到腳本之家平臺供大家參考2017-10-10
MySQL修改lower_case_table_names參數(shù)的方法實(shí)踐
本文主要介紹了MySQL修改lower_case_table_names參數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05
MySql數(shù)據(jù)庫分布式存儲配置實(shí)操步驟
這篇文章主要為大家介紹了MySql數(shù)據(jù)庫分布式存儲配置實(shí)操步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07

