Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 다른 테이블의 문자열만 참조로 사용하여 테이블에 행을 추가하는 방법은 무엇입니까?

<시간/>

이를 위해 MySQL에서 INSERT INTO SELECT 문을 사용합니다. 테이블을 만들어 봅시다 -

mysql> create table demo61
−> (
−> id int,
−> name varchar(20)
−> )
−> ;
Query OK, 0 rows affected (1.84 sec)

insert 명령을 사용하여 일부 레코드를 테이블에 삽입하십시오 -

mysql> insert into demo61 values(1,'John');
Query OK, 1 row affected (0.63 sec)

mysql> insert into demo61 values(2,'David');
Query OK, 1 row affected (0.13 sec)

mysql> insert into demo61 values(1,'Mike');
Query OK, 1 row affected (0.10 sec)

mysql> insert into demo61 values(2,'Carol');
Query OK, 1 row affected (0.30 sec)

mysql> insert into demo61 values(2,'Bob');
Query OK, 1 row affected (0.09 sec)

select 문을 사용하여 테이블의 레코드 표시 -

mysql> select *from demo61;

이것은 다음과 같은 출력을 생성합니다 -

+------+-------+
| id   | name  |
+------+-------+
|    1 | John  |
|    2 | David |
|    1 | Mike  |
|    2 | Carol |
|    2 | Bob   |
+------+-------+
5 rows in set (0.00 sec)

다음은 두 번째 테이블을 생성하는 쿼리입니다.

mysql> create table demo62
-> (
−> employee_id int not null auto_increment primary key,
−> employee_name varchar(20)
−> );
Query OK, 0 rows affected (1.60 sec)

insert 명령을 사용하여 일부 레코드를 테이블에 삽입하십시오 -

mysql> insert into demo62(employee_name)
−> select name from demo61 where id=2;
Query OK, 3 rows affected (0.14 sec)
Records: 3 Duplicates: 0 Warnings: 0

select 문을 사용하여 테이블의 레코드 표시 -

mysql> select *from demo62;

이것은 다음과 같은 출력을 생성합니다 -

+-------------+---------------+
| employee_id | employee_name |
+-------------+---------------+
| 1           | David         |
| 2           | Carol         |
| 3           | Bob           |
+-------------+---------------+
3 rows in set (0.00 sec)