使用多个表中的WHERE条件更新表

时间:2013-08-26 02:07:42

标签: mysql sql

我正在尝试使用以下SQL:

  UPDATE `vocabulary` 
  SET `wordEN` = `wordES` 
  WHERE `vocabulary`.`lessonID` = `lessons`.`id` 
  AND `lessons`.`courseID` = 2

但是我收到以下错误:

  

1054 - 'where子句'

中的未知栏'lessons.id'

有没有在MYSQL中这样做?也许在查询中有查询或什么?

1 个答案:

答案 0 :(得分:2)

我猜你想要updatejoin。这可能是您要查找的查询:

UPDATE vocabulary v join
       lessons l
       on v.lessonID = l.id and
          l.courseID = 2
     SET v.wordEN = v.wordES;

编辑:

这也可能有效:

UPDATE vocabulary v
   SET v.wordEN = v.wordES
   where v.lessonId in (select id from lessons l where l.courseID = 2);