将select语句转换为更新语句

时间:2013-11-23 21:49:19

标签: mysql sql

我有以下select语句,它为没有交换的人获取了writingExericses.text的值。介绍

SELECT `courses`.`writingExercises`.`text`,
`general`.`exchange`.`name` 
FROM `general`.`exchange`, `courses`.`writingExercises`  
WHERE  `general`.`exchange`.`introduction` = '' 
AND `general`.`exchange`.`id` = `courses`.`writingExercises`.`userID` 
AND `courses`.`writingExercises`.`lessonID` = 1

如何修改它以便将用户exchange.introduction设置为没有exchange.introduction的用户的writingExercises.text?

1 个答案:

答案 0 :(得分:1)

要将select语句转换为更新语句,

SELECT ... FROM替换为UPDATE关键字

SET子句

之前添加WHERE子句

e.g。从这个select语句开始

SELECT w.text
     , e.name 
  FROM general.exchange e 
  JOIN courses.writingExercises w
    ON e.id = w.userID
 WHERE w.lessonID = 1
   AND e.introduction = ''

我们会得到一个像这样的更新声明:

UPDATE general.exchange e 
  JOIN courses.writingExercises w
    ON e.id = w.userID
   SET e.introduction = w.text     
 WHERE w.lessonID = 1
   AND e.introduction = ''

(我的问题不清楚(对我而言)是否要更改“简介”列或“文本”列中的值。上面的示例设置了简介列的值。缺少架构描述和表格定义,很难说......)

但这证明了如何在MySQL中将SELECT语句转换为多表UPDATE语句的一般方法。