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

两个表中,查询到一条记录就返回继续下一条的查找,在这种情况下,如何提高Select的效率
有两个表A,B。A表与B表是通过A表的关键字Ka与B表的关系字Kb一一对应的,如果A表与B表均有十万条记录。
A表的数据比如如下:
ka col1 col2
aa test1 test2
bb t3 t4
cc t5 t5
dd asdf gedf
......

B表的数据如下:
kb col1 col2
bb t3 t4
aa test1 test2
dd dfg asgw
cc t5 t5
......

请问,当我查询时,按A表为准,从aa查起,当我在B表查到aa记录时,就不再往下继续查找aa的记录,而是再返回到A表查找aa的下一条记录bb,然后再在B表中查找bb的记录,查到第一条bb的记录时,就不再往下继续查找bb的记录,然后再返回到A表查找bb的下一条记录cc,依此类推...
请问这种语句应该怎么写呢?
语句最好可以在视图下运行
谢谢

------解决方案--------------------
s
------解决方案--------------------
SQL code

select a.ka,a.col1,a.col2,b.col1 bcol1,b.col2 bcol2
from a left join b on a.ka=b.ka

------解决方案--------------------
还要什么具体例子?
直接运行这两句就可以了啊。晕```
------解决方案--------------------
如果你是SQL SERVER 2005,可以试试下面的看看效率
SQL code

select * from a
outer apply (select top 1 col1,col2 from b where a.ka = b.kb)as x