我正在尝试使用以下SQL:

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


但我收到以下错误:


  1054-“ where子句”中的未知列“ lessons.id”


无论如何,在MYSQL中可以执行此操作吗?也许在查询中有查询或其他东西?

最佳答案

我猜想您要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);

09-04 18:33