我有3个表:链接,关键字和keywords_links。 keywords_links加入了另外两个表。现在我试图编写一个删除链接的PHP函数。它也将不得不删除将被删除的链接仅使用的所有关键字。我被困在MySQL查询中以删除这些关键字。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'
)
'links'表是如何关联的? – 2012-07-22 20:44:38
这就像典型的帖子和标签表。链接有一个id,它通过'keywords_links'表链接到关键字。 – 2012-07-22 20:47:06