IN 연산자를 사용하여 다른 테이블에 존재하지 않는 한 테이블에서 선택할 수 있습니다. 위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다.
첫 번째 테이블 이름은 A, 두 번째 테이블 이름은 B입니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table A -> ( -> Value int -> ); Query OK, 0 rows affected (0.56 sec)
이제 insert 명령을 사용하여 테이블에 일부 레코드를 삽입할 수 있습니다.
쿼리는 다음과 같습니다
mysql> insert into A values(10); Query OK, 1 row affected (0.23 sec) mysql> insert into A values(20); Query OK, 1 row affected (0.11 sec) mysql> insert into A values(30); Query OK, 1 row affected (0.11 sec) mysql> insert into A values(50); Query OK, 1 row affected (0.10 sec) mysql> insert into A values(80); Query OK, 1 row affected (0.12 sec)
select 문을 사용하여 테이블의 모든 레코드를 표시합니다.
쿼리는 다음과 같습니다
mysql> select *from A;
다음은 출력입니다.
+-------+ | Value | +-------+ | 10 | | 20 | | 30 | | 50 | | 80 | +-------+ 5 rows in set (0.00 sec)
다음은 이름이 B
인 두 번째 테이블을 생성하는 쿼리입니다.mysql> create table B -> ( -> Value2 int -> ); Query OK, 0 rows affected (0.65 sec)
삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오.
쿼리는 다음과 같습니다
mysql> insert into B values(20); Query OK, 1 row affected (0.11 sec) mysql> insert into B values(50); Query OK, 1 row affected (0.15 sec)
이제 select 문을 사용하여 테이블의 모든 레코드를 표시할 수 있습니다.
쿼리는 다음과 같습니다
mysql> select *from B;
다음은 출력입니다.
+--------+ | Value2 | +--------+ | 20 | | 50 | +--------+ 2 rows in set (0.00 sec)
다음은 테이블 B에 없는 테이블 A에서 선택하는 쿼리입니다.
mysql> SELECT * FROM A WHERE Value NOT IN (SELECT Value2 FROM B);
다음은 출력입니다.
+-------+ | Value | +-------+ | 10 | | 30 | | 80 | +-------+ 3 rows in set (0.00 sec)