有多个表
每个表都有相同字段
id(自增) title(标题) data(时间) memberid(会员ID) 现在想查出用一个会员所发信息的列表
我要怎么做?怎么样效率更高?
谢谢了

解决方案 »

  1.   

    按照查询条件由小到大的原则,即WHERE   后面先加最小的条件,然后依次加大的条件。 
    举例: 
    假设用AA、BB表,AA、BB表以字段Num关联,现在查询num= "12345 "的记录。 
    速度最快的语句是: 
    SELECT   a.Num,a.Date,a.VendorID,b.Code,b.Spec,b.Qty,b.Price 
    FROM   AA   a,BB   b 
    WHERE   a.Num= "12345 "   and   a.Num=b.Num 速度最慢的语句是: 
    SELECT   a.Num,a.Date,a.VendorID,b.Code,b.Spec,b.Qty,b.Price 
    FROM   AA   a,BB   b 
    WHERE   a.Num=b.Num   and   a.Num= "12345 "   
      

  2.   

    本人觉得最快的思想就是分步查询。
    1、首先查询出会员的ID;
    2、用会员的ID作为where条件在信息表里查询信息列表。
      

  3.   

    我是一个初学者,我想问个问题  如何知道哪个SQL语句执行速度的快慢  也就是说如何知道哪个SQL语句的效率高
      

  4.   

    拿Oracle为例
    Oracle默认是基于规则的,采用自下而上的顺序解析WHERE子句.
    还有优化方式是基于成本的,那么解析顺序就不所谓了.
      

  5.   

    错了,默认是choose的,基与成本的.
      

  6.   

    SELECT  a.Num,a.Date,a.VendorID,b.Code,b.Spec,b.Qty,b.Price 
    FROM  AA  a,BB  b 
    WHERE  a.Num= "12345 "  and  a.Num=b.Num 
     
      或者用关键字 inselect * from table1 where id in(select * from table2) 
      

  7.   

    select * from tablea(nolock) where Num= '12345'  union select * from tableb  where Num= '12345'  
      

  8.   

    要测效率很简单,每个表插入1万条,或10万条数据,用不同的sql执行,就知道了三