数据库您现在的位置是:首页 > 博客日志 > 数据库

mysql insert into select 语句的用法,从表2中复制表1中没有的数据到表1

<a href='mailto:'>微wx笑</a>的头像微wx笑 2022-03-27数据库179 4 0关键字: mysql  sql  insert into select  

​SQL INSERT INTO SELECT 语法
我们可以从一个表中复制所有的列插入到另一个已存在的表中:
INSERT INTO table2
SELECT * FROM table1;

SQL INSERT INTO SELECT 语法

我们可以从一个表中复制所有的列插入到另一个已存在的表中:1jH无知

1
2
INSERT INTO table2
SELECT FROM table1;


1jH无知

或者我们可以只复制希望的列插入到另一个已存在的表中:1jH无知

1
2
3
4
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;

实例1jH无知

1
2
3
INSERT INTO Websites (name, country)
SELECT app_name, country FROM apps
WHERE id=1;


1jH无知

现实中用到的sql语句:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
INSERT INTO stock (
    `code`, `cnname`, `stname`, `zhangfu`, 
    `price`, `zhangdie`, `buy`, `sale`, 
    `zongliang`, `xianliang`, `zhangsu`, 
    `huanshou`, `open`, `high`, `low`, 
    `yestoday`, `peg`, `zongjine`, `liangbi`, 
    `hangye`, `diqu`, `zhenfu`, `junjia`, 
    `neipan`, `weipan`, `neiwaibi`, `buyliang`, 
    `saleliang`, `wppl`, `kpje`, `kphsz`, 
    `fengdane`, `fengdanbi`, `liutonggu`, 
    `liutongsz`, `zongshizhi`, `qiangruodu`, 
    `huoyuedu`, `junliang`, `bihuanshou`, 
    `lianzhang`, `zhangfu3`, `huanshouz`, 
    `liutongszz`, `beta`, `pettm`, `pes`, 
    `zhangfukp`, `zhangfuzg`, `zhangfuzd`, 
    `zhangfupj`, `zhangfust`, `huituobo`, 
    `gongjibo`, `xianjuncha`, `updatecw`, 
    `datess`, `zongguben`, `bagu`, `hgu`, 
    `zongzichan`, `jingzichan`, `shaoshugq`, 
    `zcfzl`, `zichanld`, `zichangd`, 
    `zichanwx`, `ldfz`, `cunhuo`, `yszk`, 
    `zbgjj`, `yingyesr`, `yingyecb`, 
    `yingyelr`, `tuozisy`, `lirunze`, 
    `lirunsh`, `jinglirun`, `lirunwfp`, 
    `xianjljy`, `xianjlz`, `gudongrs`, 
    `renjuncg`, `renjunsz`, `tongbilr`, 
    `tongbisr`, `pe`, `shixianlu`, `shixiaolu`, 
    `guxilu`, `meigusy`, `meigujz`, `tzhjz`, 
    `meigugj`, `meiguwfp`, `quanyibi`, 
    `roe`, `maolilu`, `yylirunlu`, `jlirunlu`, 
    `flag`
SELECT 
    s2.`code`, 
    s2.`cnname`, 
    s2.`stname`, 
    s2.`zhangfu`, 
    s2.`price`, 
    s2.`zhangdie`, 
    s2.`buy`, 
    s2.`sale`, 
    s2.`zongliang`, 
    s2.`xianliang`, 
    s2.`zhangsu`, 
    s2.`huanshou`, 
    s2.`open`, 
    s2.`high`, 
    s2.`low`, 
    s2.`yestoday`, 
    s2.`peg`, 
    s2.`zongjine`, 
    s2.`liangbi`, 
    s2.`hangye`, 
    s2.`diqu`, 
    s2.`zhenfu`, 
    s2.`junjia`, 
    s2.`neipan`, 
    s2.`weipan`, 
    s2.`neiwaibi`, 
    s2.`buyliang`, 
    s2.`saleliang`, 
    s2.`wppl`, 
    s2.`kpje`, 
    s2.`kphsz`, 
    s2.`fengdane`, 
    s2.`fengdanbi`, 
    s2.`liutonggu`, 
    s2.`liutongsz`, 
    s2.`zongshizhi`, 
    s2.`qiangruodu`, 
    s2.`huoyuedu`, 
    s2.`junliang`, 
    s2.`bihuanshou`, 
    s2.`lianzhang`, 
    s2.`zhangfu3`, 
    s2.`huanshouz`, 
    s2.`liutongszz`, 
    s2.`beta`, 
    s2.`pettm`, 
    s2.`pes`, 
    s2.`zhangfukp`, 
    s2.`zhangfuzg`, 
    s2.`zhangfuzd`, 
    s2.`zhangfupj`, 
    s2.`zhangfust`, 
    s2.`huituobo`, 
    s2.`gongjibo`, 
    s2.`xianjuncha`, 
    s2.`updatecw`, 
    s2.`datess`, 
    s2.`zongguben`, 
    s2.`bagu`, 
    s2.`hgu`, 
    s2.`zongzichan`, 
    s2.`jingzichan`, 
    s2.`shaoshugq`, 
    s2.`zcfzl`, 
    s2.`zichanld`, 
    s2.`zichangd`, 
    s2.`zichanwx`, 
    s2.`ldfz`, 
    s2.`cunhuo`, 
    s2.`yszk`, 
    s2.`zbgjj`, 
    s2.`yingyesr`, 
    s2.`yingyecb`, 
    s2.`yingyelr`, 
    s2.`tuozisy`, 
    s2.`lirunze`, 
    s2.`lirunsh`, 
    s2.`jinglirun`, 
    s2.`lirunwfp`, 
    s2.`xianjljy`, 
    s2.`xianjlz`, 
    s2.`gudongrs`, 
    s2.`renjuncg`, 
    s2.`renjunsz`, 
    s2.`tongbilr`, 
    s2.`tongbisr`, 
    s2.`pe`, 
    s2.`shixianlu`, 
    s2.`shixiaolu`, 
    s2.`guxilu`, 
    s2.`meigusy`, 
    s2.`meigujz`, 
    s2.`tzhjz`, 
    s2.`meigugj`, 
    s2.`meiguwfp`, 
    s2.`quanyibi`, 
    s2.`roe`, 
    s2.`maolilu`, 
    s2.`yylirunlu`, 
    s2.`jlirunlu`, 
    s2.`flag` 
FROM 
    `stock_2` as s2 
    LEFT JOIN stock as s1 on s2.code = s1.code 
WHERE 
    s1.code IS null;

注意事项

1、要插入数据的表必须存在,但结构不需要和源数据表一致。1jH无知

2、如果要插入数据的表里面已经存在数据,存在自增ID字段,那么在编写语句的时候要去掉ID字段。1jH无知

3、如果希望将查询数据插入到一个不存在的表,需要使用 Select into 语句。1jH无知

例如:1jH无知

1
2
3
4
SELECT *
INTO WebsitesBackup2016
FROM Websites
WHERE country='CN';

复制多个表中的数据插入到新表中:1jH无知

1
2
3
4
5
SELECT Websites.name, access_log.count, access_log.date
INTO WebsitesBackup2016
FROM Websites
LEFT JOIN access_log
ON Websites.id=access_log.site_id;


1jH无知

本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/database/2022-03-27/1138.html

很赞哦! (5) 有话说 (0)

文章评论