ホームページ  >  記事  >  データベース  >  ある MySQL テーブルで、別のテーブルに存在しないレコードを見つけますか?

ある MySQL テーブルで、別のテーブルに存在しないレコードを見つけますか?

WBOY
WBOY転載
2023-09-09 17:37:071343ブラウズ

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

ある MySQL テーブルで、別のテーブルに存在しないレコードを検索するには、次を使用できます。 レコードのないテーブルに対してサブクエリを実行します。これは、次のように使用するとよりよく理解できます。 指定された手順 -

まず、create コマンドを使用してテーブルを作成します。テーブル名は「PresentHistory」で、 2 つの列。以下に示す -

mysql> CREATE table PresentHistory
-> (
-> HisID int,
-> HisName varchar(100)
-> );
Query OK, 0 rows affected (0.54 sec)

テーブルの作成後、2 番目のテーブルに表示されるいくつかのレコードが挿入されます。 素晴らしい。これは、以下に示すように、挿入コマンドを使用して実行されます。 -

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 コマンドを使用して 2 番目のテーブルを作成します。テーブルの名前は「PastHistory」です。 以下に示すように 2 つの列が含まれています。

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)

現在、2 番目のテーブルには 4 つのレコードがあります。そのうち 2 つのレコードは最初のテーブルからのものであり、 2 番目のテーブルには、異なるレコードが 2 つあります。

次のように select ステートメントを使用して 2 番目のテーブルのレコードを確認できます。 -

mysql> SELECT * from PastHistory;

上記のクエリの出力は

+--------+----------+
| PastId | PastName |
+--------+----------+
| 1      | John     |
| 2      | Bob      |
| 3      | Carol    |
| 4      | Jason    |
+--------+----------+
4 rows in set (0.00 sec)

にレコードがあるかどうかを確認します。 1 つのテーブルの 2 番目のテーブル 既存のレコードの構文は次のとおりです。 次のように-

SELECT * from yourSecondTableName where columnNamefromSecondtable NOT IN
(SELECT columnNamefromfirsttable from yourFirstTableName);

指定されたクエリは 2 番目のテーブルの異なるレコードを取得するために使用されます-

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)

From上記の出力から明らかなように、 最初のテーブル。

以上がある MySQL テーブルで、別のテーブルに存在しないレコードを見つけますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。