2013-11-21 127 views
0

我想獲得刪除查詢工作,但不斷收到運行時錯誤。 我在做什麼: 拿一張桌子,將它與另一張桌子相比較,並刪除後面那張ID字段不匹配/爲空的記錄。 基本上,我試圖刪除第二張表中的記錄,但不是第一張。SQL刪除查詢刪除不匹配的記錄嗎?

我查詢的SQL如下(它是由訪問產生,可能是完全錯誤的):

DELETE [Training Summary].* 
FROM [Training Summary] LEFT JOIN [Temporary for MRC Update] ON [Training Summary].[DHV ID Number] = [Temporary for MRC Update].[Id] 
WHERE ((([Temporary for MRC Update].Id) Is Null)); 
+0

http://stackoverflow.com/questions/3047566/help-with-delete-where-not-in-query?rq=1 – Philo

+1

難道你不覺得,如果你也許有幫助告訴我們這些「運行時錯誤」實際上*說*? –

+0

@JohnnyBones在他們達到15個代表之前,他們不會高調,但你是對的:在8個問題的11個回答中,你會希望他們中的至少一個值得接受[接受](http:// meta .stackexchange.com /一個/ 5235)。 –

回答

0

這是幹什麼的,你想的正好相反。它將刪除第一張表格中的記錄,但不會刪除第二張表格中的記錄。只需切換名稱。

0
DELETE Table2.* 
FROM Table2 
WHERE ID NOT IN (
    SELECT ID 
    FROM Table1 
) 
0
DELETE * FROM [Training Summary] 
WHERE [DHV ID Number] NOT IN (
    SELECT [Id] 
    FROM [Temporary for MRC Update] 
) 
+0

這會引發一個錯誤,要求選擇表格。我在這裏錯過了什麼? – user2744572

+0

* @ sam morris *,更正了我的答案。我錯過了'*'。 – Linger