私は2つのテーブルを持っています:
- タグ
- tags_news(バインディング)
id
を含まないデータを削除する必要がありますtags table
。
例:
タグ: 1, 2
tags_news: 2
tags_news に id=1 のデータはありません。そして、これを削除する必要があります。方法がわかりません。私を助けてください。
私は2つのテーブルを持っています:
id
を含まないデータを削除する必要がありますtags table
。
例:
タグ: 1, 2
tags_news: 2
tags_news に id=1 のデータはありません。そして、これを削除する必要があります。方法がわかりません。私を助けてください。
使用できますNOT EXISTS
DELETE tn FROM dbo.TagsNews tn
WHERE NOT EXISTS(
SELECT 1 FROM dbo.Tags t
WHERE t.ID = tn.ID
)
delete from tags where id not in(select id from tags_new)
aLeft join
も使用できます。以下を参照してください。
DECLARE @tags TABLE ( id INT )
DECLARE @tags_news TABLE ( id INT )
INSERT INTO @tags
( id )
VALUES ( 1 )
INSERT INTO @tags
( id )
VALUES ( 2 )
INSERT INTO @tags
( id )
VALUES ( 3 )
INSERT INTO @tags_news
( id )
VALUES ( 2 )
DELETE t
FROM @tags AS t
LEFT JOIN @tags_news tn ON t.id = tn.id
WHERE tn.id IS NULL
SELECT id
FROM @tags