2016-09-29 6 views
-3

にDELETE句でJOINのSQLで次のクエリの有効なされて使用することはできは、私は疑問に思うSQL

Incorrect syntax near join

+0

MS SQL Serverを使用していますか?もしそうなら、あなたの質問はhttps://stackoverflow.com/questions/16481379/how-to-delete-using-inner-join-with-sql-serverの複製です – jpw

+3

あなたはどのDBMSを使用していますか?標準SQLは、DELETE文を使用したJOINをサポートしていません –

答えて

1

言及を使用することができます。 (このソリューションはSQL Server専用です)

DELETE re --if you wanted to delete the cases replace `re` with `ca` 
FROM Reporters re 
JOIN Cases ca ON re.CaseId = ca.ID 
    WHERE ca.Court = @Court 
+0

dbmsが指定されていない質問に対する製品固有の回答が非常に多い。 – jarlh

+0

助けてくれてありがとう – ppetyr

1
DELETE r 
FROM reporters as r 
INNER JOIN cases as c 
ON r.CaseId = c.ID 
    WHERE c.Court = @Court 
+1

dbmsが指定されていない質問に対する製品固有の回答が非常に多いです。 – jarlh

1

することができますはい、テーブルへのエイリアスを指定して削除するだけで済みます。

+0

dbmsが指定されていない質問に対する製品固有の回答が非常に多い。 – jarlh

1

テーブルのエイリアスを設定するとうまくいきます。

DELETE r 
FROM Reporters AS r 
INNER JOIN Cases AS c 
    ON r.CaseId = c.ID 
WHERE c.Court = @Court 

それとも、あなたがから削除したいどのテーブルから

DELETE FROM Reporters 
WHERE EXISTS (SELECT 1 FROM Cases WHERE Cases.ID = Reporters.CaseId AND Cases.Court = @Court) 
関連する問題