リンク、キーワード、keywords_links の 3 つのテーブルがあります。keyword_links は、他の 2 つのテーブルを結合します。現在、リンクを削除する PHP 関数を作成しようとしています。また、削除するリンクでのみ使用されているすべてのキーワードを削除する必要があります。これらのキーワードを削除する MySQL クエリに行き詰まっています。
これが私が今持っているものです:
DELETE FROM keywords INNER JOIN keywords_links ON keywords_links.keyword_id=keywords.id WHERE keywords_links.link_id='123' AND NOT EXISTS(...?)
編集:これは機能しているようですが、より効率的な方法はありますか? (サブクエリなし?)
DELETE
FROM keywords
INNER JOIN keywords_links ON keywords_links.keyword_id = keywords.id
WHERE keywords_links.link_id = '123'
AND !
EXISTS (
SELECT *
FROM keywords_links
WHERE keyword_id = keywords.id
AND link_id != '123'
)