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

단일 MySQL 쿼리에서 두 개의 SELECT 문을 사용하여 첫 번째 테이블의 값을 두 번째 테이블에 삽입합니다.

<시간/>

두 개의 SELECT 문을 사용하여 첫 번째 테이블의 값을 다른 테이블에 삽입하려면 SUBQUERY를 사용하십시오. 이렇게 하면 단일 MySQL 쿼리만 사용하여 두 번째 테이블에서 결과를 얻을 수 있습니다. 먼저 테이블을 생성하겠습니다 -

mysql> 테이블 생성 DemoTable1( Name varchar(100), Score int);Query OK, 영향을 받는 행 0개(1.30초)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable1 values('Chris',45);Query OK, 1개의 row가 영향을 받았습니다(0.12초)mysql> insert into DemoTable1 values('Bob',78);Query OK, 1개의 row가 영향을 받았습니다(0.13초). )mysql> insert into DemoTable1 values('David',98);Query OK, 1개의 row가 영향을 받음 /사전> 

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

mysql> Select *from DemoTable1;

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

+-------+-------+| 이름 | 점수 |+-------+-------+| 크리스 | 45 || 밥 | 78 || 데이비드 | 98 || 캐롤 | 89 |+-------+-------+4행 세트(0.00초)

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

mysql> Create table DemoTable2( StudentName varchar(100), StudentScore int);Query OK, 영향을 받는 행 0개(0.58초)

이제 두 개의 SELECT 문을 사용하여 첫 번째 테이블에서 두 번째 테이블로 값을 삽입하는 MySQL 쿼리를 작성해 보겠습니다. -

mysql> insert into DemoTable2(StudentName,StudentScore) values((Select Name from DemoTable1 where Score=98),(select Score from DemoTable1 where Name='David'));Query OK, 영향을 받는 1개 행(0.30초) 

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

mysql> select *from DemoTable2;+-------------+----------------+| 학생 이름 | 학생 점수 |+-------------+-------------+| 데이비드 | 98 |+-------------+--------------+1 행 세트(0.00초)