2011-01-20 87 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