CREATEtablePresentHistory->(->HisIDint,->HisNamevarchar(100)->);QueryOK,0rowsaffected(0.54sec) 테이블을 생성한 후 일부 레코드가 삽입되고 이 레코드가 두 번째에 나타납니다."/> CREATEtablePresentHistory->(->HisIDint,->HisNamevarchar(100)->);QueryOK,0rowsaffected(0.54sec) 테이블을 생성한 후 일부 레코드가 삽입되고 이 레코드가 두 번째에 나타납니다.">

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

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

WBOY
WBOY앞으로
2023-09-09 17:37:071346검색

查找一个 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제