日期:2014-05-18  浏览次数:20528 次

两种查询方法有何区别
第一种也是我常用的,利用两表的连接来取得字段
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

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






------解决方案--------------------
第一种效率要高一些,
对于第二种,a表有多少条记录就要扫描b表多少次。
------解决方案--------------------
执 行 计 划 显 示 第一 种效 率 高 ,但 实 际 操 作 时 ,有 时 候 第 二 种 快 .原 因 没 有 分 析 过. 总 之 具 体 问 题 具 体 分 析 .
------解决方案--------------------
第一种两表可以是一对多,多对多,一对一的;属于内联接,相对来说效率比第二个高
第二种两表必须是一对一的;属子查询
------解决方案--------------------
可能你的两个表的字段比较多,当链接时占用内存更大