我有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