当前位置: 代码迷 >> Sql Server >> 这个SQL能运行,但能优化下吗?该如何处理
  详细解决方案

这个SQL能运行,但能优化下吗?该如何处理

热度:35   发布时间:2016-04-27 13:22:34.0
这个SQL能运行,但能优化下吗?
SELECT u.email FROM members u WHERE u.username=(select w.username f
rom tableb w where w.tid='1');


我想根据在tableb表中tid=1的username 从member表中选出email.

------解决方案--------------------
不能了。
如果实在想优化,可以考虑修改Index等。
------解决方案--------------------
SELECT u.email FROM members u WHERE exists (select w.username f
rom tableb w where w.tid='1'and w.username=u.username);


------解决方案--------------------
如果子查询是返回单个的值,这个语句好像没什么可优化的,
你可以考虑在两个表的连接字段 username 建索引
------解决方案--------------------
SQL code
SELECT u.email FROM members u WHERE exists (select 1 from tableb w where u,username=w.username and w.tid='1')没经验,不晓得这么写会不会快一点点,楼主试一下。另外给where后面 出现的字段加上索引
  相关解决方案