선택 결과를 삽입할 때마다 값을 사용할 필요가 없습니다. select 결과를 삽입하기 위해 먼저 두 개의 테이블을 생성합니다.
첫 번째 테이블 쿼리는 다음과 같습니다 -
< FirstTableDemo> mysql> create table FirstTableDemo −> ( −> StudentId int, −> StudentName varchar(100) −> ); Query OK, 0 rows affected (0.41 sec)
이제 두 번째 테이블을 만든 다음 INSERT SELECT 명령을 사용하여 첫 번째 테이블에 두 번째 테이블 레코드를 삽입합니다.
두 번째 테이블 생성 쿼리 -
<SecondTableDemo> mysql> create table SecondTableDemo −> ( −> Id int, −> Name varchar(100) −> ); Query OK, 0 rows affected (0.47 sec)
insert 명령을 사용하여 테이블에 레코드를 삽입합니다. 쿼리는 다음과 같습니다 -
mysql> insert into SecondTableDemo values(1,'John'); Query OK, 1 row affected (0.14 sec) mysql> insert into SecondTableDemo values(2,'Sam'); Query OK, 1 row affected (0.27 sec)
이제 두 번째 테이블에 두 개의 레코드가 있습니다. select 문을 사용하여 테이블의 모든 레코드를 표시하는 쿼리는 다음과 같습니다. -
mysql> select *from SecondTableDemo;
다음은 출력입니다 -
+------+------+ | Id | Name | +------+------+ | 1 | John | | 2 | Sam | +------+------+ 2 rows in set (0.00 sec)
INSERT SELECT 문을 사용하여 두 번째 테이블의 모든 레코드를 첫 번째 테이블에 삽입 -
mysql> insert into FirstTableDemo(StudentId,StudentName) −> select Id,Name from SecondTableDemo as tbl1 −> where tbl1.Id not in (select StudentId from FirstTableDemo); Query OK, 2 rows affected (0.57 sec) Records: 2 Duplicates: 0 Warnings: 0
이제 두 번째 테이블의 모든 레코드를 첫 번째 테이블에 삽입했습니다. select 문을 사용하여 교차 확인을 해보자. 쿼리는 다음과 같습니다 -
mysql> select *from FirstTableDemo;
다음은 출력입니다 -
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 1 | John | | 2 | Sam | +-----------+-------------+ 2 rows in set (0.00 sec)