1.组合表查询
select a.* from test1 a test2 b where a.colume = b.colume and ...2.复合查询
select a.* from test1 a where a.colume = (select b.colume from test2 b where ...)假定两条语句都能正确执行!!!!

解决方案 »

  1.   

    你可以算一下假定A表N列B表M列 都没有任何索引 那么得到一个时间复杂度的公式 是
    N*(M+1)/2。第二个是N*M 这样一看就知道效率的优劣了
      

  2.   

    假定两条语句都能正确执行,那么,第二条的效率高!理由:
    如果select a.* from test1 a where a.colume = (select b.colume from test2 b where ...)能正确执行,说明(select b.colume from test2 b where ...)子查询返回的结果是唯一的!
      

  3.   

    楼主的第2条其实应该是
    select a.* from test1 a where a.colume in (select b.colume from test2 b where ...)
    这样的话第一条肯定效率高
      

  4.   

    假定两条语句都能正确执行,那么,第二条的效率高!理由:
    如果select a.* from test1 a where a.colume = (select b.colume from test2 b where ...)能正确执行,说明(select b.colume from test2 b where ...)子查询返回的结果是唯一的!
    -------------------
    支持
      

  5.   

    2的效率高,同意楼上的。
    理由:
    如果select a.* from test1 a where a.colume = (select b.colume from test2 b where ...)能正确执行,说明(select b.colume from test2 b where ...)子查询返回的结果是唯一的!