我有 3 个表:链接、关键字和关键字链接。keywords_links 连接另外两个表。现在我正在尝试编写一个删除链接的 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'
)