別のMySQLテーブルに存在しないレコードを1つのMySQLテーブルから検索しますか?
別のテーブルに存在しない1つの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番目のテーブルで異なります。
2番目のテーブルのレコードは、selectステートメントを使用して次のように表示されます-
mysql> SELECT * from PastHistory;
上記のクエリの出力は
です。+--------+----------+ | PastId | PastName | +--------+----------+ | 1 | John | | 2 | Bob | | 3 | Carol | | 4 | Jason | +--------+----------+ 4 rows in set (0.00 sec)
2番目のテーブルに存在しない1つのテーブルのレコードをチェックするための構文は、次のとおりです-
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)
上記の出力から、最初のテーブルに存在しない2つのレコードが見つかったことが明らかです。
-
MySQLの別のテーブルのデータから1つのテーブルのデータを更新しますか?
このために、JOINと一緒にUPDATEコマンドを使用できます。 最初のテーブルを作成しましょう- mysql> create table demo54 −> ( −> firstName varchar(20), −> lastName varchar(20) −> ); Query OK, 0 rows affected (0.57 sec) 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 mysql> insert into demo54 values('John'
-
MySQLのあるテーブルから別のテーブルにデータを挿入しますか?
あるテーブルから別のテーブルにデータを挿入するには、INSERTINTOSELECTステートメントを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1 -> ( -> Id int, -> FirstName varchar(20) -> ); Query OK, 0 rows affected (0.49 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> i