delete from A where a_id in (select id from B where b_id in (select id from C where c_id = ?))

请问这句SQL语句怎么优化?我的意思万一in语句里面的内容过多会出问题的,怎么用连接表的形式去delete?... 请问这句SQL语句怎么优化? 我的意思万一in语句里面的内容过多会出问题的,怎么用连接表的形式去delete? 展开
 我来答
sh981013
2013-01-31 · 超过33用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:88.5万
展开全部
IN中的数据量不能大于2K条,否则会报错
先使用SELECT语句将数据查询到一张临时表

然后使用INNER JOIN进行内联删除
追问
我需要只通过一条sql语句达到目的,你的方法能给出具体的sql吗?
IT行动派
2013-01-31 · 超过24用户采纳过TA的回答
知道答主
回答量:104
采纳率:0%
帮助的人:57万
展开全部
用 exists 效率会高很多
更多追问追答
追问
能否给出具体的SQL语句?
追答
delete from a where exists (select 1 from a,b,c where a.id=b.id and b.id=c.id)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式