ある 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 サイトの他の関連記事を参照してください。