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

테이블 B에 존재하지 않는 MySQL 테이블 A에서 선택하는 방법은 무엇입니까?

<시간/>

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)