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

테이블 C에 데이터 삽입 IF MySQL의 테이블 A와 비교하는 동안 데이터가 테이블 B에 있지 않습니까?

<시간/>

이를 위해 테이블 ​​A와 B에 왼쪽 조인을 사용합니다. 첫 번째 테이블을 생성하겠습니다 -

mysql> create table demo20−> (−> id int,−> name varchar(20)−> );쿼리 OK, 영향을 받은 행 0개(1.87초)

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

mysql> insert into demo20 values(100,'John');Query OK, 1개의 row가 영향을 받음(0.07초)mysql> insert into demo20 values(101,'Bob');Query OK, 1개의 row가 영향(0.24초) )mysql> insert into demo20 values(102,'Mike');Query OK, 1개의 row가 영향을 받음 /사전> 

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

mysql− select *from demo20;

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

+------+-------+| 아이디 | 이름 |+------+-------+| 100 | 존 || 101 | 밥 || 102 | 마이크 || 103 | 캐롤 |+------+-------+4행 세트(0.00초)

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

mysql> create table demo21−> (−> id int,−> name varchar(20)−> );쿼리 OK, 영향을 받은 행 0개(1.70초)

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

mysql> insert into demo21 values(100,'Sam');Query OK, 1행 영향(0.12초)mysql> insert into demo21 values(101,'Adam');Query OK, 1행 영향(0.14초) )mysql> insert into demo21 values(133,'Bob');Query OK, 1개의 row가 영향을 받습니다(0.13초)mysql> insert into demo21 values(145,'David');Query OK, 1개의 row가 영향을 받습니다(0.15sec) 

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

mysql> select *from demo21;

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

+------+-------+| 아이디 | 이름 |+------+-------+| 100 | 샘 || 101 | 아담 || 133 | 밥 || 145 | David |+---+-------+4행 세트(0.00초)

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

mysql> create table demo22−> (−> id int,−> name varchar(20)−> );쿼리 OK, 영향을 받은 행 0개(1.39초)

이제, demo20에 테이블 이름이 A이고, demo21에 B가, demo22에 C가 있다고 가정해 보겠습니다. 데이터가 A -

와 비교하여 테이블 B에 데이터가 없는 경우 테이블 C에 데이터를 삽입하는 쿼리는 다음과 같습니다.
mysql> demo22(id,name)에 삽입-> demo20에서 tbl1.id,tbl1.name 선택 tbl1-> tbl2.id=tbl1.id에서 왼쪽 조인 demo21 tbl2-> 여기서 tbl2.id는 null;Query 알겠습니다. 영향을 받는 행 2개(0.21초) 레코드:2 중복:0 경고:0

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

mysql> select *from demo22;

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

+------+-------+| 아이디 | 이름 |+------+-------+| 102 | 마이크 || 103 | 캐롤 |+------+-------+2행 세트(0.00초)