1

引用符のないキーワードからすべてのレコードを返すこのクエリがあります。クエリは機能していますが、これらすべてのレコードを削除したい場合、問題は、SELECTの代わりにDELETEを入力するとエラーが発生することです。

SELECT Keywords.[Id]
  ,[QuoteId]      
  FROM [QuotesTemple].[dbo].[Keywords]
 LEFT JOIN [QuotesTemple].[dbo].Quotes ON Keywords.QuoteId=Quotes.Id
  WHERE Quotes.Id IS NULL

これは動作しません。

DELETE
  FROM [QuotesTemple].[dbo].[Keywords]
  LEFT JOIN [QuotesTemple].[dbo].Quotes ON Keywords.QuoteId=Quotes.Id
  WHERE Quotes.Id IS NULL

このエラーが発生します:

メッセージ156、レベル15、状態1、行4キーワード「LEFT」の近くの構文が正しくありません。

4

3 に答える 3

2

次のように書きます。

DELETE [QuotesTemple].[dbo].[Keywords] FROM [QuotesTemple].[dbo].[Keywords]
  LEFT JOIN [QuotesTemple].[dbo].Quotes ON Keywords.QuoteId=Quotes.Id
  WHERE Quotes.Id IS NULL
于 2013-03-23T23:50:14.457 に答える
1

有効な構文は次のとおりです。

DELETE [QuotesTemple].[dbo].[Keywords]
FROM [QuotesTemple].[dbo].[Keywords] AS k
LEFT JOIN [QuotesTemple].[dbo].[Quotes] AS q ON k.QuoteId = q.Id
WHERE q.Id IS NULL
于 2013-03-23T23:55:54.140 に答える
1
you can also write as below

delete t1 FROM projects AS t1 LEFT OUTER JOIN [QuotesTemple].[dbo].Quotes AS t2 on t1.QuoteId= t2.QuoteId where t2.Id is Null
于 2013-03-24T00:00:59.673 に答える