第一种:select a.ID.a.Name.a.Age.b.Score from a,b 
        where a.ID=b.ID
第二种:select a.ID.a.Name.a.Age.b.Score from a
        left join b on a.ID=b.ID
请问如果数据量是上万条记录 且需要三四张表关联  哪种关联效率高点呢 ?您一般习惯用那一种呢?谢谢各位

解决方案 »

  1.   

    你写的a表和B表的关系是?一般我用select *From dbo.a WITH(NOLOCK) INNER JOIN B ON A.ID=B.ID
      

  2.   


    就是a表的ID和b表的ID关联 请问 WITH(NOLOCK) 是什么意思 
      

  3.   

    一般用leftjoin在写的时候要保证数据量大的表在左边
      

  4.   

    sql server会自动进行优化,往往从一个查询语句几十种方案中挑出一种才执行。因此不一定执行笛卡尔积操作。不过,如果写的很清楚,直接写关联操作,这是值得表扬的写法。
      

  5.   

    这两个查询的结果不是一样的。
    left join 应该换成inner join
      

  6.   

    sql server有服务器工具可以显示每一种查询语句的分析结果,如果一定对此特别感兴趣,应该去掌握工具。最次地,一切都要以自己主动测试来说了算,不要对着理论争论来争论去。