SQL Update从一个表到另一个表

时间:2017-03-20 18:07:10

标签: sql ms-access

我已经查找了如何做到这一点并找到答案 here

我已经设置了一个基本的MS Access 2013数据库来测试它并尝试了两种解决方案。

当我尝试运行以下内容时:

UPDATE 
Tbl1 as A
INNER JOIN tbl2 AS B ON A.userID = B.UserID 
SET A.userID = B.[UserID];

我收到一个消息框,说我即将更新0行。即使在tbl2中有UserID数据。

当我尝试:

UPDATE A 
SET A.[UserID] = B.[UserID]
FROM tbl1 A, tbl2 B WHERE A.[UserID] = B.[UserID]

我在查询表达式"

中得到了#34;语法错误(缺少运算符)

我注意到有人在评论中提到第二种解决方案在Access 2013中不起作用,但就像我说的那样,第一种解决方案也不起作用。

有谁知道我哪里出错?

3 个答案:

答案 0 :(得分:1)

尝试

更新tbl1 SET userid =(SELECT userid                从tbl2)

答案 1 :(得分:1)

  

"我收到一个消息框,说我要更新0行。即使在tbl2中有UserID数据。"

因为如果更新A.userID = B.[UserID],那么A.userID = B.UserID会更新0行。

如果您加入类似userName之类的东西,那么您可能正在做某事。

UPDATE Tbl1 as A
INNER JOIN tbl2 AS B ON A.userName = B.userName 
SET A.userID = B.[UserID];

答案 2 :(得分:1)

至于我在这里看到的是你试图在where子句中设置你也使用的列的值。在您引用的答案中,设置的列与where子句中使用的列不同,因此0行更新消息。