MySQL中INSERT+SELECT的使用方式
MySQL中INSERT+SELECT的使用
使用場景
通過一條sql語句實現(xiàn)從多個表中組合字段然后插入到另外的一個新表中。
1.兩表之間
從一張表中查出字段的值插入到另一張表中對應(yīng)的字段
INSERT INTO tab1(field1,field2) SELECT field1,field2 FROM tab2;
2.三表之間
從兩張表中查出字段的值插入到另一張表中對應(yīng)的字段
INSERT INTO tab1 (field1, field2)
SELECT *
FROM
(SELECT
tab2.field1, tab3.field2
FROM tab2
JOIN tab3
ON tab2.field = tab3.filed) AS tab ;3.多表之間
從多張表中查出字段的值插入到另一張表中對應(yīng)的字段
INSERT INTO tab1 (field1, field2, field3, ... )
SELECT *
FROM
(SELECT
tab2.field1, tab3.field2, tab4.field3, ...
FROM tab2
JOIN tab3
ON tab2.field = tab3.filed
JOIN tab4
ON tab2.field = tab4.filed
...
) AS tab ;通過join查詢將分別來自表tab2和表tab3的字段進(jìn)行了組合,然后再通過select嵌套查詢插入到表tab1中,如果需要不止2個表,那么可以多個join的形式來組合字段。
需要注意的是嵌套查詢部分最后一定要有設(shè)置表別名。
這種方式要求目標(biāo)表必須存在。
還有一種不需要目標(biāo)表的存在,就是SELECT INTO
MySQL中SELECT INTO FROM的使用
作為另一種復(fù)制表數(shù)據(jù)的手段,其得到的結(jié)果與上述的insert into select是一樣。
不過select into不要求目標(biāo)表存在,目標(biāo)表會在查詢過程中自動創(chuàng)建。
select[column1,column2...] into [目標(biāo)表名] from [原始表名]
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql實現(xiàn)設(shè)置定時任務(wù)的方法分析
這篇文章主要介紹了mysql實現(xiàn)設(shè)置定時任務(wù)的方法,結(jié)合實例形式分析了mysql定時任務(wù)相關(guān)的事件計劃設(shè)置與存儲過程使用等操作技巧,需要的朋友可以參考下2019-10-10
Windows11下MySQL?8.0.29?安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Windows11下MySQL?8.0.29?安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07

