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

MySQL이 다른 테이블에 없는 테이블에서 행을 선택하는 쿼리를 선택하시겠습니까?

<시간/>

이 예에서는 두 개의 테이블을 만들고 Natural Left Join을 적용하여 두 번째 테이블에 없는 테이블의 행을 가져옵니다.

첫 번째 테이블 만들기

mysql> create table FirstTableDemo
   -> (
   -> id int,
   -> name varchar(100)
   -> );
Query OK, 0 rows affected (0.48 sec)

첫 번째 테이블에 레코드를 삽입합니다.

mysql> insert into FirstTableDemo values(1,'Bob'),(2,'John'),(3,'Carol');
Query OK, 3 rows affected (0.13 sec)
Records: 3  Duplicates: 0  Warnings: 0

모든 기록을 표시합니다.

mysql> select *from FirstTableDemo;

다음은 출력입니다.

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

두 번째 테이블을 만드는 중입니다.

mysql> create table SecondTableDemo
   -> (
   -> id int,
   -> name varchar(100)
   -> );
Query OK, 0 rows affected (0.62 sec)

두 번째 테이블에 레코드 삽입.

mysql> insert into SecondTableDemo values(1,'Bob'),(2,'John');
Query OK, 2 rows affected (0.12 sec)
Records: 2  Duplicates: 0  Warnings: 0

모든 기록을 표시합니다.

mysql> select *from SecondTableDemo;

다음은 출력입니다.

+------+------+
| id   | name |
+------+------+
|    1 | Bob  |
|    2 | John |
+------+------+

다음은 두 번째 테이블에 없는 행을 선택하는 구문입니다.

mysql> SELECT tbl1.*
    -> FROM FirstTableDemo tbl1
    -> NATURAL LEFT JOIN  SecondTableDemo tbl2
    -> where tbl2.name IS NULL;

다음은 "Carol"과 같이 첫 번째 테이블에는 있지만 두 번째 테이블에는 없는 행을 표시하는 출력입니다.

+------+-------+
| id   | name  |
+------+-------+
|    3 | Carol |
+------+-------+
1 row in set (0.03 sec)