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

別のテーブルの値でMySQLテーブルを更新しますか?


内部結合を使用して、別のテーブルを更新できます。 2つのテーブルを作成しましょう。

テーブルの作成

mysql> CREATE table tblFirst
   -> (
   -> id int,
   -> name varchar(100)
   -> );
Query OK, 0 rows affected (0.48 sec)

レコードの挿入

mysql> INSERT into tblFirst values(1,'John');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into tblFirst values(2,'Bob');
Query OK, 1 row affected (0.26 sec)

mysql> INSERT into tblFirst values(3,'David');
Query OK, 1 row affected (0.20 sec)

すべてのレコードを表示する

mysql> SELECT * from tblFirst;

以下は出力です

+------+-------+
| id   | name  |
+------+-------+
| 1    | John  |
| 2    | Bob   |
| 3    | David |
+------+-------+
3 rows in set (0.00 sec)

2番目のテーブルの作成

mysql> CREATE table UpdTable
   -> (
   -> IncId int auto_increment,
   -> primary key(IncId),
   -> id int,
   -> name varchar(100)
   -> );
Query OK, 0 rows affected (0.57 sec)

レコードの挿入

mysql> INSERT into UpdTable(id,name) values(1,'Taylor');
Query OK, 1 row affected (0.12 sec)

mysql> INSERT into UpdTable(id,name) values(2,'jason');
Query OK, 1 row affected (0.24 sec)

mysql> INSERT into UpdTable(id,name) values(3,'carol');
Query OK, 1 row affected (0.14 sec)

mysql> INSERT into UpdTable(id,name) values(4,'john');
Query OK, 1 row affected (0.16 sec)

すべてのレコードを表示する

mysql> SELECT * from UpdTable;

以下は出力です

mysql> SELECT *from UpdTable;
+-------+------+--------+
| IncId | id   | name   |
+-------+------+--------+
| 1     | 1    | Taylor |
| 2     | 2    | jason  |
| 3     | 3    | carol  |
| 4     | 4    | john   |
+-------+------+--------+
4 rows in set (0.00 sec)

上記の出力を見ると、名前は最初のテーブルレコードと一致しています。次に、UPDATE-

のクエリを記述します。
mysql> UPDATE UpdTable
   -> inner join tblFirst ON (UpdTable.name = tblFirst.name)
   -> SET UpdTable.id = tblFirst.id;
Query OK, 1 row affected (0.19 sec)
Rows matched: 1 Changed: 1 Warnings: 0

最後のレコードを次のように更新しました-

クエリは

mysql> SELECT * from UpdTable;

以下は出力です

+-------+------+--------+
| IncId | id   | name   |
+-------+------+--------+
| 1     | 1    | Taylor |
| 2     | 2    | jason  |
| 3     | 3    | carol  |
| 4     | 1    | john   |
+-------+------+--------+
4 rows in set (0.00 sec)

サンプル出力を見てください。 IDが更新されました。以前は4でしたが、現在は1です。


  1. 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'

  2. 別のテーブルの値を使用したINSERTINTOのMySQLクエリ?

    これには、INSERTINTOSELECTステートメントを使用します。 テーブルを作成しましょう- 例 mysql> create table demo82    -> (    -> id int,    -> name varchar(20)    -> ); Query OK, 0 rows affected (2.06 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 例 mysql> insert into demo82 values(100,&