Joe*_*M05 5 mysql sql join sql-delete
我知道有不止一个问题符合这一点,但我对mysql相对较新,而且我似乎无法使用子任务或USING关键字来完成这项工作,而且我找到了mysql on line docs a完全神秘.
我开始尝试使用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'
Run Code Online (Sandbox Code Playgroud)
然后用DELETE替换select all,所以:
delete
from writings_tags_link
join writing_tags on writing_tags.id = writings_tags_link.tag_id
where writing_tags.tag = 'tag one'
Run Code Online (Sandbox Code Playgroud)
我从错误消息和其他类似的帖子中收集到你不能使用'ON'来连接删除查询中的表,你必须使用USING或子查询.我使用USING构建的查询返回一个非常奇怪的错误,首先是查询:
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'
Run Code Online (Sandbox Code Playgroud)
错误:
#1109 - Unknown table 'writings_tags_link' in MULTI DELETE
Run Code Online (Sandbox Code Playgroud)
这个表确实存在,显然,我原来的select查询返回了所需的结果.任何帮助/解释都会非常感激!
请记住,我只是想删除链接表中的数据.
您USING在使用JOIN时要求在DELETE语法中使用关键字的信息不正确- 文档提供了多删除部分中的示例:
DELETE wtl
FROM WRITINGS_TAGS_LINK wtl
JOIN WRITING_TAGS wt ON wt.id = wtl.tag_id
WHERE wt.tag = 'tag one'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2680 次 |
| 最近记录: |