有这样两个表:
表a:记录几十条
表b:记录几万条
现在需要在表a中增加一列,该列来自表b,获取的条件是表a和表b的某一字段值相等。那么该如何做呢?
有人可能会想到用左连接,如:
select a.*,b.col
from a left out inner join b
on a.colm=b.coln
但是这样的结果是什么呢?效率如何?实验发现,效率很差,执行时间很长。。。
于是,改变策略,获取表b中的字段改用函数实现。
如:
declare @name varchar(20)
select @name=col
from b
where coln=@col
测试发现,效率提高了,但是一想,查询出的值要是不唯一,有很多怎么办,于是改为:
declare @name varchar(20)
set @name=(
select top 1 col
from b
where coln=@col
)
效率又提高了。