2015-02-23 22 views
-1

Access中的更新操作期间是否可以执行双重内部联接?更新操作期间的多个内部联接

下面的代码犯规”工作对我来说:

UPDATE [TableA] 

INNER JOIN [TableB] ON [TableB].Field1= [TableA].Field1, 
INNER JOIN [TableC] ON [TableC].Field2 = [TableB].Field2 

Set 
[TableA].Field3 = 'Test' 

where [TableC].Field4 = 0 

回答

6

是的,它是可能的。

对于SQL SERVER

UPDATE A 
Set 
A.Field3 = 'Test' 
FROM [TableA] A 
INNER JOIN [TableB] B ON B.Field1 = A.Field1 
INNER JOIN [TableC] C ON C.Field2 = B.Field2 
where C.Field4 = 0 

对于MS ACCESS

UPDATE ([TableA] 
INNER JOIN [TableB] ON [TableB].Field1 = [TableA].Field1) 
INNER JOIN [TableC] ON [TableC].Field2 = [TableB].Field2 
Set [TableA].Field3 = 'Test' 
where [TableC].Field4 = 0 
+0

它不”的作品。错误说:查询表达式'测试'中的Syntex错误(缺少运算符) FROM [TableA] A INNER JOIN [TableB] B ON B.Field1 = A.Field1, – dario 2015-02-23 16:17:48

+0

您是否希望声明sql服务器或访问? – 2015-02-23 16:24:05

+0

@dario,尝试别名,'A.Field3 ='Test''。我已经更新了答案。 – 2015-02-23 16:26:20

0

常规语法多个连接update操作如下:

UPDATE T1 
[INNER JOIN | LEFT JOIN] T2 ON T1.C1 = T2.C1 
[INNER JOIN | LEFT JOIN] T3 ON T2.C2 = T3.C2 
SET T1.C2 = T2.C2 
WHERE condition