两种查询方法有何区别

plean 2007-10-12 02:12:01
第一种也是我常用的,利用两表的连接来取得字段
select a.id,a.pid,b.name from a
join b on a.pid=b.id

第二种
select a.id,a.pid,
(select name from b where a.pid=b.id) as name
from a

不知道两种方式各有什么优缺点?
谢谢




...全文
153 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
snsofterp 2007-10-13
  • 打赏
  • 举报
回复
发表于:2007-10-12 14:33:345楼 得分:0
可能你的两个表的字段比较多,当链接时占用内存更大


同意
ORARichard 2007-10-12
  • 打赏
  • 举报
回复
执 行 第 一 种 ,用 任 务 管 理 器 看 一 下 内 存 的 变 化
plean 2007-10-12
  • 打赏
  • 举报
回复
第二种在执行计划里看是right outer join,所以理应比较慢才对
可能如elvis_gao所说的,占用内存较大引起消耗时间比第一种多巴
elvis_gao 2007-10-12
  • 打赏
  • 举报
回复
可能你的两个表的字段比较多,当链接时占用内存更大
chuifengde 2007-10-12
  • 打赏
  • 举报
回复
第一种两表可以是一对多,多对多,一对一的;属于内联接,相对来说效率比第二个高
第二种两表必须是一对一的;属子查询
plean 2007-10-12
  • 打赏
  • 举报
回复
谢谢两位!
我也觉得第一种应该效率要高,但是我这里实际操作第二种要快,不太明白阿
ORARichard 2007-10-12
  • 打赏
  • 举报
回复
执 行 计 划 显 示 第一 种效 率 高 ,但 实 际 操 作 时 ,有 时 候 第 二 种 快 .原 因 没 有 分 析 过. 总 之 具 体 问 题 具 体 分 析 .
dobear_0922 2007-10-12
  • 打赏
  • 举报
回复
第一种效率要高一些,
对于第二种,a表有多少条记录就要扫描b表多少次。

34,593

社区成员

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

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