Trong hướng dẫn này, chúng tôi nhằm mục đích khám phá cách cập nhật giá trị của một bảng dựa trên các mục nhập của một bảng khác trong MySQL
Đôi khi, các doanh nghiệp và tổ chức cần phải cập nhật liên tục các giá trị của một bảng cụ thể. Ngoài ra, các giá trị này có thể cần được cập nhật dựa trên các mục trong bảng khác. Bảng khác này có thể được liên kết với bảng sẽ được cập nhật dựa trên một hoặc nhiều cột
Ví dụ, xem xét chúng tôi có hai bảng. Một là
SELECT * FROM student_details;
0 và khác là SELECT * FROM student_details;
1. Cả hai bảng này đều có một cột chung tên là SELECT * FROM student_details;
2. Chúng tôi muốn cập nhật bảng SELECT * FROM student_details;
1 với số nhận dạng của học sinh bằng cách sử dụng thông tin phù hợp từ bảng SELECT * FROM student_details;
0. Điều này có thể được thực hiện với sự trợ giúp của mệnh đề SELECT * FROM student_details;
5Hãy cho chúng tôi hiểu cách thức hoạt động của phương pháp này
Tuy nhiên, trước khi bắt đầu, chúng tôi tạo một tập dữ liệu giả để làm việc với. Ở đây chúng tôi tạo một bảng,
SELECT * FROM student_details;
0, cùng với một vài hàng trong đó-- create the table student_details
CREATE TABLE student_details[
stu_id int,
stu_firstName varchar[255] DEFAULT NULL,
stu_lastName varchar[255] DEFAULT NULL,
primary key[stu_id]
];
-- insert rows to the table student_details
INSERT INTO student_details[stu_id,stu_firstName,stu_lastName]
VALUES[1,"Preet","Sanghavi"],
[2,"Rich","John"],
[3,"Veron","Brow"],
[4,"Geo","Jos"],
[5,"Hash","Shah"],
[6,"Sachin","Parker"],
[7,"David","Miller"];
Truy vấn trên tạo một bảng cùng với các hàng có tên và họ của sinh viên trong đó. Để xem các mục trong dữ liệu, chúng tôi sử dụng đoạn mã sau
SELECT * FROM student_details;
Đoạn mã trên sẽ cho đầu ra sau
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
Chúng ta hãy thử tạo một bảng khác có tên
SELECT * FROM student_details;
1 với các cột SELECT * FROM student_details;
8 và SELECT * FROM student_details;
2 cho biết số nhận dạng và tên của các sinh viên. Chúng ta có thể làm điều này với truy vấn sauSELECT * FROM student_details;
3Chúng ta có thể hình dung bảng này như sau
Đầu ra của mã nói trên có thể được minh họa như sau
SELECT * FROM student_details;
4Bây giờ, chúng ta hãy thử cập nhật bảng
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
0 bằng bảng SELECT * FROM student_details;
0Cú pháp cơ bản của kỹ thuật
SELECT * FROM student_details;
5 có thể được minh họa như sauSELECT * FROM student_details;
8Như chúng ta có thể thấy, trong truy vấn đã nói ở trên, chúng ta cập nhật giá trị của
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
3 trong stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
4 dựa trên giá trị của stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
3 trong stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
6. Chúng ta có thể làm điều này với truy vấn sauSELECT * FROM student_details;
3Đoạn mã nói trên cập nhật các giá trị của cột
SELECT * FROM student_details;
8 của bảng stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
0. Đầu ra của mã nói trên có thể được minh họa như sauSELECT * FROM student_details;
6Như chúng ta có thể thấy, tên cột
SELECT * FROM student_details;
8 được cập nhật dựa trên các giá trị của bảng SELECT * FROM student_details;
0. Phép nối này được thực hiện bằng cách sử dụng tên bảng chung SELECT * FROM student_details;
2. Giá trị SELECT * FROM student_details;
2 này khớp với cả hai cột và giá trị tương ứng của cột SELECT * FROM student_details;
8 từ bảng SELECT * FROM student_details;
0 được phản ánh trong bảng stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
0Một giải pháp thay thế cho giải pháp này là tránh sử dụng
SELECT * FROM student_details;
36 và trực tiếp thực hiện phép nối với sự trợ giúp của mệnh đề SELECT * FROM student_details;
37. Các hoạt động nói trên có thể được thực hiện với kỹ thuật này như sauSELECT * FROM student_details;
6Ở đây, như chúng ta có thể thấy, Đầu ra của đoạn mã nói trên một lần nữa có thể được minh họa bằng lệnh
SELECT * FROM student_details;
38 để có kết quả như sauSELECT * FROM student_details;
6Do đó, với sự trợ giúp của kỹ thuật
SELECT * FROM student_details;
5, chúng ta có thể cập nhật một cột của một bảng một cách hiệu quả dựa trên các giá trị từ một bảng khác trong MySQL