select T from A where exists(
   select * from B where A.a=B.a)
如果A,B表里面的数据非常多,上亿条
有没有更好点的查询方法来提高下效率
谢谢

解决方案 »

  1.   

    select T from A where exists(
       select * from B where A.a=B.a)
    如果A,B表里面的数据非常多,上亿条
    有没有更好点的查询方法来提高下效率
    谢谢
    ----------------------相关子查询效率很低,更何况你还用了select * ...select A.T from A inner join B on A.a=B.a
      

  2.   

    为什么不这么写?select a.T from a,b where A.a=B.b
      

  3.   

    SELECT T FROM A INNER JOIN B ON A.a=B.a上亿条的话,估计以我们的硬件条件,就不要用MSSQL了。
      

  4.   

    这种情况下,用inner join 更加有效率
      

  5.   

    select a.T from A a, B b where A.a=B.a
      

  6.   

    就是说用内连接的效率要高些是吧
    哪位GGJJ能不能帮小弟解释下这里说的SQL语句执行的过程吗?
    使用EXISTS 和连接,之间哪个效率更好些?
      

  7.   

    exist后跟子查询,也就是说在低层操作时,每检索一条记录都要去执行一次子查询.效率可以想像了.