MySQL更新語(yǔ)句可以從其他表中獲取數(shù)據(jù)來(lái)更新當(dāng)前表的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的更新操作。具體的語(yǔ)法格式為:
UPDATE current_table SET current_table.column_name = other_table.column_name FROM current_table JOIN other_table ON current_table.join_column = other_table.join_column WHERE condition;
其中,current_table
指當(dāng)前需要更新數(shù)據(jù)的表,column_name
指當(dāng)前表中需要更新的列名,other_table
指需要獲取數(shù)據(jù)的其他數(shù)據(jù)表,join_column
指連接兩張表的列名,condition
是更新數(shù)據(jù)的條件。
舉個(gè)例子,我們有一個(gè)students
表和一個(gè)scores
表,需要將scores
表中的成績(jī)數(shù)據(jù)更新到students
表中對(duì)應(yīng)學(xué)生的成績(jī)列:
UPDATE students SET students.score = scores.score FROM students JOIN scores ON students.id = scores.student_id WHERE students.id IN (1, 2, 3);
這個(gè)更新語(yǔ)句會(huì)將scores
表中學(xué)號(hào)為1、2、3的學(xué)生的成績(jī)更新到students
表中對(duì)應(yīng)學(xué)號(hào)的score
列中。
需要注意的是,UPDATE
語(yǔ)句中如果在同一張表中更新數(shù)據(jù),則不需要使用FROM
和JOIN
語(yǔ)句,直接使用以下語(yǔ)法即可:
UPDATE table_name SET column_name = other_column_name WHERE condition;
這個(gè)更新語(yǔ)句會(huì)將table_name
表中符合條件的數(shù)據(jù)的column_name
列更新為other_column_name
列中的數(shù)據(jù)。