Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Chèn bản ghi (không phải tất cả) từ bảng này sang bảng khác trong một truy vấn MySQL

Dùng INSERT INTO ... SELECT ... WHERE. Cú pháp:

INSERT INTO bang2(cot1,cot2,...) SELECT cot1,cot2,... FROM bang1 WHERE dieu_kien;

Tạo bảng 1:

mysql> CREATE TABLE DemoTable1 (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(40)
); Query OK, 0 rows affected (0.88 sec)

Chèn dữ liệu:

mysql> INSERT INTO DemoTable1(Name) VALUES('Chris'); Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable1(Name) VALUES('David'); Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable1(Name) VALUES('Bob');   Query OK, 1 row affected (0.12 sec)

Tạo bảng 2:

mysql> CREATE TABLE DemoTable2 (
    ClientId INT, ClientFirstName VARCHAR(20)
); Query OK, 0 rows affected (0.60 sec)

Chèn từ bảng 1 sang bảng 2, loại trừ Id=2:

mysql> INSERT INTO DemoTable2(ClientId,ClientFirstName) 
SELECT Id, Name FROM DemoTable1 WHERE Id != 2;
Query OK, 2 rows affected (0.17 sec)

Kết quả bảng 2:

+----------+-----------------+
| ClientId | ClientFirstName |
+----------+-----------------+
| 1        | Chris           |
| 3        | Bob             |
+----------+-----------------+
2 rows in set (0.00 sec)