select * from tb1 where id in (select id from tb2)太慢,有什么方法可以取代 in

luosjz 2007-09-03 12:04:06
同上
...全文
125 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
comszsoft 2007-09-03
  • 打赏
  • 举报
回复
in 会引起全表扫描,用不到索引,所以会很慢,用 inner join 吧
scmyxj 2007-09-03
  • 打赏
  • 举报
回复
用EXISTS来代替IN,特别是对于从表数据量较大的情况下:
SELECT A.* FROM TAB1 A WHERE EXISTS(SELECT B.ID FROM TB2 B WHERE B.ID=A.ID)
kk19840210 2007-09-03
  • 打赏
  • 举报
回复
用连接
select a.* from tb1 a inner join tb2 b on a.[id]=b.[id]
dobear_0922 2007-09-03
  • 打赏
  • 举报
回复
select tb1.* from tb1 join tb2 on tb1.id=tb2.id

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧