2012-09-21 12 views
5

このクエリがあります。私はAgentsResultLinks-Tableから、Results-Table内のエンティティへのリンクを持っていないすべてのエンティティを削除したいと思います。私は1つのクエリで解決策が必要です。 '*'によってエラーが発生しました。MSSql(コンパクト)DELETE-JOINを使用したクエリ

DELETE AgentResultLinks.* 
FROM AgentResultLinks LEFT JOIN Results 
ON AgentResultLinks.ResultID = Results.ID 
WHERE Results.ID IS NULL 

コンパクトデータベースのvss mssqlクエリでこのクエリを変換するのを助けることができますか? パフォーマンスは非常に重要です。

+0

[このリンクはアップデート(または多分削除)することはできませんなぜ答えを説明し、AをSQL Server CEでそれに参加しているテーブル。](http://stackoverflow.com/a/6934448/491243) –

答えて

4
DELETE FROM AgentResultLinks 
where ResultID not in(select distinct ID from Results) 
+1

私はこの投稿を書き込む前にこの質問を試みました。それは遅すぎる。それは動作します。 – Gepro

+0

テーブルの行数はいくつですか? – jainvikram444

+0

AgentResultsLinks> 500000および結果> 20000 – Gepro

9

だけDELETE構文を参照してください.*

AgentResultLinks.*から
DELETE Agent 
FROM AgentResultLinks Agent 
LEFT JOIN Results R 
     ON Agent.ResultID = R.ID 
WHERE R.ID IS NULL; 

を削除:DELETE (Transact-SQL)

See SQLFiddle Example

+0

A (FROMの近くで)エラーが発生しました。有効ではありません。 – Gepro

+0

@Geproテーブルにエイリアスを付けて使用します。答えを更新しました。 – hims056

+0

私は同じエラーを受けました – Gepro

関連する問題