MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのテーブルAと比較しているときに、データがテーブルBにない場合は、データをテーブルCに挿入しますか?


これには、テーブルAとBで左結合を使用します。最初のテーブルを作成しましょう-

mysql> create table demo20
−> (
−> id int,
−> name varchar(20)
−> );
Query OK, 0 rows affected (1.87 sec)

挿入コマンド-

を使用して、いくつかのレコードをテーブルに挿入します。
mysql> insert into demo20 values(100,'John');
Query OK, 1 row affected (0.07 sec)

mysql> insert into demo20 values(101,'Bob');
Query OK, 1 row affected (0.24 sec)

mysql> insert into demo20 values(102,'Mike');
Query OK, 1 row affected (0.12 sec)

mysql> insert into demo20 values(103,'Carol');
Query OK, 1 row affected (0.15 sec)

selectステートメントを使用してテーブルのレコードを表示する-

mysql− select *from demo20;

これにより、次の出力が生成されます-

+------+-------+
|  id | name   |
+------+-------+
|  100 | John  |
|  101 | Bob   |
|  102 | Mike  |
|  103 | Carol |
+------+-------+
4 rows in set (0.00 sec)

以下は、2番目のテーブルを作成するためのクエリです-

mysql> create table demo21
−> (
−> id int,
−> name varchar(20)
−> );
Query OK, 0 rows affected (1.70 sec)

挿入コマンド-

を使用して、いくつかのレコードをテーブルに挿入します。
mysql> insert into demo21 values(100,'Sam');
Query OK, 1 row affected (0.12 sec)

mysql> insert into demo21 values(101,'Adam');
Query OK, 1 row affected (0.14 sec)

mysql> insert into demo21 values(133,'Bob');
Query OK, 1 row affected (0.13 sec)

mysql> insert into demo21 values(145,'David');
Query OK, 1 row affected (0.15 sec)

selectステートメントを使用してテーブルのレコードを表示する-

mysql> select *from demo21;

これにより、次の出力が生成されます-

+------+-------+
| id   | name  |
+------+-------+
|  100 | Sam   |
|  101 | Adam  |
|  133 | Bob   |
|  145 | David |
+------+-------+
4 rows in set (0.00 sec)

以下は、3番目のテーブルを作成するためのクエリです-

mysql> create table demo22
−> (
−> id int,
−> name varchar(20)
−> );
Query OK, 0 rows affected (1.39 sec)

ここで、demo20のテーブル名がA、demo21のB、demo22のCであるとします。A-

と比較してデータがテーブルBにない場合、テーブルCにデータを挿入するクエリは次のとおりです。
mysql> insert into demo22(id,name)
−> select tbl1.id,tbl1.name from demo20 tbl1
−> left join demo21 tbl2 on tbl2.id=tbl1.id
−> where tbl2.id is null;
Query OK, 2 rows affected (0.21 sec)
Records: 2 Duplicates: 0 Warnings: 0

selectステートメントを使用してテーブルのレコードを表示する-

mysql> select *from demo22;

これにより、次の出力が生成されます-

+------+-------+
| id   | name  |
+------+-------+
|  102 | Mike  |
|  103 | Carol |
+------+-------+
2 rows in set (0.00 sec)

  1. Javaを使用してMySQLデータベースにデータを挿入する方法は?

    MySQLデータベースにデータを挿入するには、INSERTコマンドを使用します。構文は次のとおりです- INSERT INTO yourTableName(yourColumnName1,........yourColumnNameN)values(Value1,Value2,......ValueN); ここでは、JAVAプログラミング言語を使用してMySQLデータベースにレコードを挿入しています。まず、MySQLでテーブルを作成する必要があります。クエリは次のとおりです- mysql> create table InsertDemo    -> ( &nb

  2. MySQLテーブルデータはWindowsのどこに保存されていますか?

    MySQLテーブルデータの場所を知るために、以下の構文を使用できます- select @@datadir; これには、SHOWVARIABLESコマンドを使用することもできます。以下は構文です- show variables where Variable_name ='datadir'; 上記の構文を実装して、MySQLテーブルがデータを格納する場所を確認しましょう- mysql> select @@datadir; これにより、次の出力が生成されます- +---------------------------------------------+ | @@data