MySQL中是否可以使用选择嵌套插入?
是的,在MySQL中可以使用选择嵌套插入,如下所示的语法−
insert into yourTableName2(yourColumnName1,yourColumnName2,.....N)
select yourColumnName1,yourColumnName2,....N from yourTableName1 where yourCondition;
首先,让我们看一个示例并创建一个表−
mysql> create table DemoTable1
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name varchar(40)
);
Query OK, 0 rows affected (0.88 sec)
使用insert命令在表中插入一些记录−
mysql> insert into DemoTable1(Name) values('Chris');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1(Name) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1(Name) values('Bob');
Query OK, 1 row affected (0.12 sec)
使用select语句从表中显示所有记录−
mysql> select *from DemoTable1;
这将生成以下输出−
+----+-------+
| Id | Name |
+----+-------+
| 1 | Chris |
| 2 | David |
| 3 | Bob |
+----+-------+
3 rows in set (0.00 sec)
以下是创建第二个表的查询−
mysql> create table DemoTable1
(
ClientId int,
ClientFirstName varchar(20)
);
Query OK, 0 rows affected (0.60 sec)
以下是使用选择嵌套插入的查询−
mysql> insert into DemoTable2(ClientId,ClientFirstName)
select Id,Name from DemoTable1 where Id !=2;
Query OK, 2 rows affected (0.17 sec)
Records : 2 Duplicates: 0 Warnings : 0
使用select语句从表中显示所有记录−
mysql> select *from DemoTable2;
这将生成以下输出−
+----------+-----------------+
| ClientId | ClientFirstName |
+----------+-----------------+
| 1 | Chris |
| 3 | Bob |
+----------+-----------------+
2 rows in set (0.00 sec)
阅读更多:MySQL 教程
极客教程