2016-02-28 135 views
0

我保存了SELECT查詢。我需要創建更新查詢來使用保存的select查詢中的值更新表字段。內部加入查詢的UPDATE查詢

我得到錯誤「操作必須使用可更新的查詢」。 問題是保存的選擇查詢結果不包含主鍵。

UPDATE [table] INNER JOIN 
     [saved_select_query] 
     ON [table].id_field = [saved_select_query].[my_field] 
    SET [table].[target_field] = [saved_select_query]![source_field]); 

林還嘗試與選擇的子查詢,而不是內在的加入,但同樣的錯誤。

回答

1

也許DLookUp()會做的伎倆:

UPDATE [table] SET 
    [target_field] = DLookUp("source_field", "saved_select_query", "my_field=" & id_field) 

...或者,如果聯接字段是文本...

UPDATE [table] SET 
    [target_field] = DLookUp("source_field", "saved_select_query", "my_field='" & id_field & "'") 
0

我不知道我完全理解你在問什麼。 如果您在使用內部聯接執行更新時詢問使用什麼語法。

UPDATE  tableAlias 
SET   Column = Value 
FROM  table1 as tableAlias 
INNER JOIN table2 as table2Alias on tableAlias.key = table2Alias.key 
0

您的查詢不正確,請嘗試此操作。

UPDATE [table] 

    SET [table].[target_field] = [table2]. 
    [source_field]) 

    from (select *from 
    [table] INNER JOIN 
    [saved_select_query] a 
    ON [table].id_field = 
    a.[my_field])  
    table2 
+0

林不知道你的查詢行得含有在第一個附近輸入錯誤(並且第一個「a」 –

0

我用它來工作如下:

UPDATE [table] 
SET [table].[target_Field] = (SELECT [source_field] FROM [Saved_Select_Query] 
WHERE [table].[id_field] = [Saved_Select_Query].[my_field]) 

不能直接使用在UPDATE語句的加入,讓你需要加入表中的一個子查詢。

+0

操作必須使用可更新的查詢:-( –