这个SQL能运行,但能优化下吗?

ma 2012-04-14 06:18:11
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.
...全文
123 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

SELECT u.email FROM members u WHERE exists (select 1 from tableb w where u,username
=w.username and w.tid='1')

没经验,不晓得这么写会不会快一点点,楼主试一下。
另外给where后面 出现的字段加上索引
tjs_125 2012-04-14
  • 打赏
  • 举报
回复
如果子查询是返回单个的值,这个语句好像没什么可优化的,
你可以考虑在两个表的连接字段 username 建索引
gggscfaii 2012-04-14
  • 打赏
  • 举报
回复
SELECT u.email FROM members u WHERE exists (select w.username f
rom tableb w where w.tid='1'and w.username=u.username);

JM 2012-04-14
  • 打赏
  • 举报
回复
不能了。
如果实在想优化,可以考虑修改Index等。

34,838

社区成员

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

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