在 MySQL 中组合 INSERT、VALUES 和 SELECT

在 MySQL 中组合 INSERT、VALUES 和 SELECT

您可以使用以下语法组合​​插入、值和选择语句

insert into yourFirstTableName(yourColumnName1,yourColumnName2,.......N) select yourColumnName1,yourColumnName2,.......N from yourSecondTableName where yourCondition;登录后复制

让我们创建第一个没有任何记录的表。创建表的查询如下

mysql> create table CombiningInsertValuesSelect    -> (    -> EmployeeId varchar(10),    -> EmployeeName varchar(100),    -> EmployeeAge int    -> ); Query OK, 0 rows affected (6.95 sec)登录后复制

mysql> create table getAllValues    -> (    -> Id varchar(100),    -> Name varchar(100),    -> Age int    -> ); Query OK, 0 rows affected (1.12 sec)登录后复制

mysql> insert into getAllValues values('EMP-1','John',26); Query OK, 1 row affected (0.86 sec) mysql> insert into getAllValues values('EMP-2','Carol',22); Query OK, 1 row affected (0.36 sec) mysql> insert into getAllValues values('EMP-3','Sam',24); Query OK, 1 row affected (0.28 sec) mysql> insert into getAllValues values('EMP-4','David',27); Query OK, 1 row affected (0.25 sec) mysql> insert into getAllValues values('EMP-5','Bob',21); Query OK, 1 row affected (0.75 sec)登录后复制

mysql> select *from getAllValues;登录后复制

+-------+-------+------+ | Id    | Name  | Age  | +-------+-------+------+ | EMP-1 | John  |   26 | | EMP-2 | Carol |   22 | | EMP-3 | Sam   |   24 | | EMP-4 | David |   27 | | EMP-5 | Bob   |   21 | +-------+-------+------+ 5 rows in set (0.00 sec)登录后复制

mysql> insert into CombiningInsertValuesSelect(EmployeeId,EmployeeName,EmployeeAge)    -> select Id,Name,Age from getAllValues where Id='EMP-4'; Query OK, 1 row affected (0.23 sec) Records: 1 Duplicates: 0 Warnings: 0登录后复制

mysql> select *from CombiningInsertValuesSelect;登录后复制

+------------+--------------+-------------+ | EmployeeId | EmployeeName | EmployeeAge | +------------+--------------+-------------+ | EMP-4      | David        | 27 | +------------+--------------+-------------+ 1 row in set (0.00 sec)登录后复制