从 MySQL 中的多张表插入记录


要从多张表插入记录,请使用 INSERT INTO SELECT 语句。在此处,我们将从 2 张表中插入记录。

我们先创建一个表 −

mysql> create table DemoTable1943
   (
   Name varchar(20)
   );
Query OK, 0 rows affected (0.00 sec)

使用 insert 命令向表中插入一些记录 −

mysql> insert into DemoTable1943 values('Chris');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1943 values('Robert');
Query OK, 1 row affected (0.00 sec)

使用 select 语句显示表中的所有记录 −

mysql> select * from DemoTable1943;

这将生成以下输出 −

+--------+
| Name   |
+--------+
| Chris  |
| Robert |
+--------+
2 rows in set (0.00 sec)

以下是创建第二个表的查询 −

mysql> create table DemoTable1944
   (
   Age int
   );
Query OK, 0 rows affected (0.00 sec)

使用 insert 命令向表中插入一些记录 −

mysql> insert into DemoTable1944 values(23);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1944 values(26);
Query OK, 1 row affected (0.00 sec)

使用 select 语句显示表中的所有记录 −

mysql> select * from DemoTable1944;

这将生成以下输出 −

+------+
| Age  |
+------+
|   23 |
|   26 |
+------+
2 rows in set (0.00 sec)

以下是创建第三个表的查询 −

mysql> create table DemoTable1945
   (
   StudentName varchar(20),
   StudentAge int
   );
Query OK, 0 rows affected (0.00 sec)

以下是从多张表插入数据的查询 −

mysql> insert into DemoTable1945(StudentName,StudentAge) select tbl1.Name,tbl2.Age from DemoTable1943 tbl1,DemoTable1944 tbl2;
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

使用 select 语句显示表中的所有记录 −

mysql> select * from DemoTable1945;

这将生成以下输出 −

+-------------+------------+
| StudentName | StudentAge |
+-------------+------------+
| Chris       |         23 |
| Robert      |         23 |
| Chris       |         26 |
| Robert      |         26 |
+-------------+------------+
4 rows in set (0.00 sec)

更新时间:2019 年 12 月 31 日

5K+ 浏览

开启你的 职业生涯

完成课程以获得认证

开始
广告