SQL多表查询问题,高手请进(200)

  • 主题发起人 主题发起人 菜鸟黄
  • 开始时间 开始时间

菜鸟黄

Unregistered / Unconfirmed
GUEST, unregistred user!
现在有A,B两个表A:a1,b1,c1B:a1,d1,e1,f11.通过d1,e1查询表B中的a12.通过表中的a1以及a1=d1查询A表3.最后得到a1,b1.注:A,B表都有10000条记录左右,我是希望查询的效率尽量快.我的查询语句是这样写的:select distinct A.a1,A.b1 from A, B where (B.d1='912202' and B.e1='2' and (A.a1=B.a1 or A.a1='912202')) or............
 
select distinct A.a1,A.b1 from A, B where A.a1 in (select a1 from B where B.d1=... and B.e1=...)
 
to smlabc能不能解释一下
 
to smlabc你这个查询还没查出a1=d1的数据
 
改一下select distinct A.a1,A.b1 from A, B where A.a1 in (select a1 from B where B.d1=... and B.e1=...)and A.a1=A.d1and A.a1=B.a1
 
既然已有条件,又想快了话,可用scan for扫描对比,这样会快好多的。试试。
 
select A.a1,A.b1 from A inner join (select a1 from B where d1='912202' and e1='2' ) tmp on A.a1 = tmp.b1Union allSelect a1,b1 from A where A.a1='912202') 建议使用临时表先保存d1和e1 的值,然后用连接查询,这样会比较快
 
感觉有点乱,这两个表有没有关系呀
 
没有说清楚关系,通过表中的a1以及a1=d1查询A表是什么意思?a1=d1怎么查询A表?
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
686
import
I
后退
顶部