> 데이터 베이스 > MySQL 튜토리얼 > 다른 테이블에는 존재하지 않는 한 MySQL 테이블의 레코드를 찾으십니까?

다른 테이블에는 존재하지 않는 한 MySQL 테이블의 레코드를 찾으십니까?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2023-09-09 17:37:07
앞으로
1422명이 탐색했습니다.

查找一个 MySQL 表中不存在于另一个表中的记录?

한 MySQL 테이블에서 다른 테이블에는 존재하지 않는 레코드를 찾으려면 다음을 사용할 수 있습니다. 레코드가 없는 테이블에 대해 하위 쿼리를 수행합니다. 이는 다음을 사용하면 더 잘 이해할 수 있습니다. 주어진 단계 -

먼저 create 명령을 사용하여 테이블을 만듭니다. 테이블 이름은 "PresentHistory"이며 두 개의 열입니다. 아래에 나와 있습니다 -

mysql> CREATE table PresentHistory
-> (
-> HisID int,
-> HisName varchar(100)
-> );
Query OK, 0 rows affected (0.54 sec)
로그인 후 복사

테이블을 생성한 후 일부 레코드가 삽입되어 두 번째 테이블에 표시됩니다. 훌륭한. 이는 아래와 같이 insert 명령의 도움으로 수행됩니다. -

mysql> INSERT into PresentHistory values(1,'John');
Query OK, 1 row affected (0.13 sec)

mysql> INSERT into PresentHistory values(2,'Bob');
Query OK, 1 row affected (0.15 sec)
로그인 후 복사

레코드를 성공적으로 삽입한 후 select 문은 다음과 같이 표시됩니다. -

mysql> SELECT * from PresentHistory;
로그인 후 복사

위 쿼리를 실행한 후 얻은 출력은 다음과 같습니다.

+-------+---------+
| HisID | HisName |
+-------+---------+
| 1     | John    |
| 2     | Bob     |
+-------+---------+
2 rows in set (0.00 sec)
로그인 후 복사

이제 create 명령을 사용하여 두 번째 테이블을 생성합니다. 테이블 이름은 "PastHistory"입니다. 아래와 같이 두 개의 열이 포함되어 있습니다.

mysql> CREATE table PastHistory
-> (
-> PastId int,
-> PastName varchar(100)
-> );
Query OK, 0 rows affected (0.74 sec)
로그인 후 복사

테이블을 생성한 후 첫 번째 테이블에 일부 레코드가 있고 첫 번째 테이블에 일부 레코드가 있습니다. 첫 번째 테이블에 존재하지 않는 콘텐츠가 PastHistory 테이블에 삽입됩니다.

mysql> INSERT into PastHistory values(1,'John');
Query OK, 1 row affected (0.13 sec)

mysql> INSERT into PastHistory values(2,'Bob');
Query OK, 1 row affected (0.13 sec)

mysql> INSERT into PastHistory values(3,'Carol');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into PastHistory values(4,'Jason');
Query OK, 1 row affected (0.16 sec)
로그인 후 복사

이제 두 번째 테이블에는 4개의 레코드가 있습니다. 그 중 첫 번째 테이블에서 2개의 레코드가 나오며, 두 번째 테이블에는 서로 다른 2개의 레코드가 있습니다.

다음과 같이 select 문을 통해 두 번째 테이블의 레코드를 볼 수 있습니다. -

mysql> SELECT * from PastHistory;
로그인 후 복사

위 쿼리의 출력은

+--------+----------+
| PastId | PastName |
+--------+----------+
| 1      | John     |
| 2      | Bob      |
| 3      | Carol    |
| 4      | Jason    |
+--------+----------+
4 rows in set (0.00 sec)
로그인 후 복사

테이블에서 두 번째 테이블에 존재하지 않는 레코드를 확인하는 구문은 다음과 같습니다. 아래와 같습니다-

SELECT * from yourSecondTableName where columnNamefromSecondtable NOT IN
(SELECT columnNamefromfirsttable from yourFirstTableName);
로그인 후 복사

주어진 쿼리는 두 번째 테이블에서 다른 레코드를 가져오는 데 사용됩니다-

mysql> SELECT * from PastHistory where PastName not in (select HisName from
PresentHistory);
로그인 후 복사

위 쿼리의 출력은 다음과 같습니다-

+--------+----------+
| PastId | PastName |
+--------+----------+
| 3      | Carol    |
| 4      | Jason    |
+--------+----------+
2 rows in set (0.00 sec)
로그인 후 복사

위 출력에서 ​​두 항목이 일치하지 않음이 분명합니다 ~에 존재하다 첫 번째 테이블.

위 내용은 다른 테이블에는 존재하지 않는 한 MySQL 테이블의 레코드를 찾으십니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿