Làm cách nào tôi có thể CẬP NHẬT một bảng từ một bảng khác trong MySQL?

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;
5

Hã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 sau

SELECT * FROM student_details;
3

Chú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;
4

Bâ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;
0

Cú pháp cơ bản của kỹ thuật

SELECT * FROM student_details;
5 có thể được minh họa như sau

SELECT * FROM student_details;
8

Như 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 sau

SELECT * 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ư sau

SELECT * FROM student_details;
6

Như 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
0

Mộ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ư sau

SELECT * 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ư sau

SELECT * FROM student_details;
6

Do đó, 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

Làm cách nào để CẬP NHẬT một trường bảng từ một trường bảng khác trong SQL?

Trong trường hợp này, bạn có thể sử dụng cú pháp câu lệnh UPDATE sau để cập nhật cột từ một bảng, dựa trên giá trị của bảng khác. CẬP NHẬT first_table, second_table SET first_table. column1 = second_table. column2 WHERE first_table. id = second_table .

Làm cách nào để CẬP NHẬT một giá trị cột từ một bảng khác trong MySQL?

Nếu bạn có trường chung trong cả hai bảng thì thật dễ dàng. .
thực hiện truy vấn trong Bảng-1 và tìm giá trị trường chung
tạo một vòng lặp và tìm tất cả dữ liệu từ Bảng-2 theo giá trị của bảng 1
một lần nữa thực hiện truy vấn cập nhật trong bảng 1

Bạn có thể CẬP NHẬT trên nhiều bảng trong MySQL không?

Đối với cú pháp nhiều bảng, UPDATE cập nhật các hàng trong mỗi bảng có tên trong table_references thỏa mãn các điều kiện . Mỗi hàng khớp được cập nhật một lần, ngay cả khi nó khớp với các điều kiện nhiều lần. Đối với cú pháp nhiều bảng, không thể sử dụng ORDER BY và LIMIT.

Làm cách nào để CẬP NHẬT bảng bằng cách sử dụng tham gia trong MySQL?

Mệnh đề THAM GIA trong MySQL được sử dụng trong câu lệnh để truy xuất dữ liệu bằng cách nối nhiều bảng trong một truy vấn. .
CẬP NHẬT Tab1, Tab2,
ĐẶT Tab1. C2 = Tab2. C2, Tab2. C3 = biểu thức
Ở ĐÂU Tab1. C1 = Tab2. điều kiện C1 AND;

Chủ Đề