MySQLの選択結果を挿入しますか?出来ますか?
選択の結果を挿入するたびに値を使用する必要はありません。 selectの結果を挿入するには、最初に2つのテーブルを作成しましょう。
最初のテーブルクエリは次のとおりです-
< FirstTableDemo> mysql> create table FirstTableDemo −> ( −> StudentId int, −> StudentName varchar(100) −> ); Query OK, 0 rows affected (0.41 sec)
次に、2番目のテーブルを作成し、その後、INSERTSELECTコマンドを使用して2番目のテーブルレコードを最初のテーブルに挿入します。
2番目のテーブルを作成するためのクエリ-
<SecondTableDemo> mysql> create table SecondTableDemo −> ( −> Id int, −> Name varchar(100) −> ); Query OK, 0 rows affected (0.47 sec)
挿入コマンドを使用して、テーブルにレコードを挿入します。クエリは次のとおりです-
mysql> insert into SecondTableDemo values(1,'John'); Query OK, 1 row affected (0.14 sec) mysql> insert into SecondTableDemo values(2,'Sam'); Query OK, 1 row affected (0.27 sec)
これで、2番目のテーブルに2つのレコードがあります。 selectステートメントを使用してテーブルのすべてのレコードを表示するクエリは次のとおりです-
mysql> select *from SecondTableDemo;
以下は出力です-
+------+------+ | Id | Name | +------+------+ | 1 | John | | 2 | Sam | +------+------+ 2 rows in set (0.00 sec)
INSERT SELECTステートメントを使用して、2番目のテーブルのすべてのレコードを最初のテーブルに挿入します-
mysql> insert into FirstTableDemo(StudentId,StudentName) −> select Id,Name from SecondTableDemo as tbl1 −> where tbl1.Id not in (select StudentId from FirstTableDemo); Query OK, 2 rows affected (0.57 sec) Records: 2 Duplicates: 0 Warnings: 0
これで、2番目のテーブルのすべてのレコードが最初のテーブルに挿入されました。 selectステートメントを使用してクロスチェックしましょう。クエリは次のとおりです-
mysql> select *from FirstTableDemo;
以下は出力です-
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 1 | John | | 2 | Sam | +-----------+-------------+ 2 rows in set (0.00 sec)
-
テーブル全体を返すSELECTを使用したMySQLプロシージャ
まずテーブルを作成しましょう- mysql> create table DemoTable1971 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(20), StudentPassword int ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します 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 affect