0

这是问题所在:

UPDATE school_new 
  SET school_new.school_id = school.[School ID], 
      school_new.school_address = school.[School Address]
FROM school_new
INNER JOIN school on school_new.school_name = school.[School Name]

我得到这个错误,我不知道是什么问题

查询表达式 'school.[School ID] FROM school_new INNER JOIN school on school_new.school_name = school.[School Name] 中的语法错误(缺少运算符)

4

4 回答 4

4

访问时加入的更新查询略有变化

UPDATE school_new 
INNER JOIN school on school_new.school_name = school.[School Name]
  SET school_new.school_id = school.[School ID], 
      school_new.school_id = school.[School ID]
于 2012-07-26T05:15:34.773 回答
1

在 SET 关键字之前列出表和连接条件。

UPDATE school_new
INNER JOIN school
    ON school_new.school_name = school.[School Name]
SET school_new.school_id = school.[School ID]

在您的示例中,您school_new.school_id = school.[School ID]分配了两次;我SET只做过一次。这一点很重要,因为如果列出两次,db 引擎会抛出错误...

Duplicate output destination 'school_new.school_id'.

根据您的问题的更新...

UPDATE school_new
INNER JOIN school
    ON school_new.school_name = school.[School Name]
SET school_new.school_id = school.[School ID], 
    school_new.school_address = school.[School Address]
于 2012-07-26T05:19:45.337 回答
0

我知道这听起来很奇怪,但尝试创建一个示例表,例如 school_new_Test 并且不要用空格给出名称,并且以同样的方式创建学校的重复表,例如 school_ORG_Test 也不要给出空格,然后尝试使用新表进行上述查询和不带空格的列名。

于 2012-07-26T05:11:02.610 回答
-3

通常,“更新”语句不能有连接。因此使用嵌套查询

update school_new
set school_new.school_id = (select school.[school ID]
from school where school.[school name] = school_new.school_name)
于 2012-07-26T05:10:06.773 回答