2011-01-20 26 views
5

我知道有一個以上的問題在那裏,匹配這一點,但我是比較新的MySQL和我似乎無法使用子任務,使這項工作或使用關鍵字,再加上我發現在線文檔的MySQL是一個完整的謎。無法獲得參加在MySQL刪除查詢工作

我開始嘗試建立自己的使用SELECT查詢作爲我的基地DELETE查詢,並能得到我想要刪除的所有行:

select * 
from writings_tags_link 
join writing_tags on writing_tags.id = writings_tags_link.tag_id 
where writing_tags.tag = 'tag one' 

,然後剛剛更換選擇所有DELETE這樣:

delete 
from writings_tags_link 
join writing_tags on writing_tags.id = writings_tags_link.tag_id 
where writing_tags.tag = 'tag one' 

我從兩個錯誤信息,並從你不能使用「ON」來連接表中刪除查詢其他類似的帖子收集,你必須使用或使用一個子查詢。我使用的回報一個非常奇怪的錯誤,首先是查詢生成的查詢:

DELETE 
FROM writings_tags_link 
USING writing_tags_link INNER JOIN writing_tags 
WHERE writing_tags.id = writings_tags_link.tag_id 
AND writing_tags.tag ='tag one' 

錯誤:

#1109 - Unknown table 'writings_tags_link' in MULTI DELETE 

該表確實存在,很明顯,我原來的選擇查詢返回了預期的效果。任何幫助/解釋將非常感激!

請記住,我只是試圖刪除鏈接表中的數據。

回答

8

你的信息不正確有關使用時需要在DELETE語法使用USING關鍵字的連接 - 在documentation provides examples in the multi-delete section

DELETE wtl 
    FROM WRITINGS_TAGS_LINK wtl 
    JOIN WRITING_TAGS wt ON wt.id = wtl.tag_id 
WHERE wt.tag = 'tag one' 
+1

哦,我明白了,我沒有添加刪除的內容!就像我說的,我在學習:)謝謝,OMG小馬! – JoeM05 2011-01-20 17:39:39