Access数据库上的SQL查询出错

时间:2012-07-26 05:02:01

标签: sql ms-access

问题在于:

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       在school_new.school_name = school。[学校名称]

的INNER JOIN学校

4 个答案:

答案 0 :(得分: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]

答案 1 :(得分: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]

答案 2 :(得分:0)

我知道这听起来很奇怪但是尝试创建一个示例表,例如school_new_Test,并且不会给出带空格的名称,并且同样的方式创建重复的学校表,例如school_ORG_Test,其中也不提供空格然后尝试以上查询新表和没有空格的列名。

答案 3 :(得分:-3)

通常,'update'语句不能有连接。使用嵌套查询

update school_new
set school_new.school_id = (select school.[school ID]
from school where school.[school name] = school_new.school_name)