select * from tableA where tableA.ap_no in

select ap_no from tableB where tableB.ps_no 
in 
(select ps_no from tableC where os_no=某个值)
)请高手帮我看看这个语句可以怎么写效率高点

解决方案 »

  1.   

    select a.*
    from tablea a , tableb b , tablec c
    where a.ap_no = b.ap_no and b.ps_no = c.ps_no and c.os_no=某个值
      

  2.   


    select A.* 
    From TableA A
    Join TableB B on B.ap_no = A.ap_no
    Join TableC C on C.ps_no = B.ps_no
    where C.os_no = value
      

  3.   

    select a.* 
    from tablea a , tableb b , tablec c 
    where a.ap_no = b.ap_no and b.ps_no = c.ps_no and c.os_no=某个值select a.* from tablea a 
    inner join tableb b on a.ap_no = b.ap_no
    inner join tableb c on b.ps_no = c.ps_no
    where c.os_no=某个值
      

  4.   

    select * from tableA , tableB ,tableC
    where A.ap_no=B.ap_no AND B.ps_no=C.ps_no 
    AND os_no=某个值
      

  5.   


    求证一下,dawugui ,之前有一个培训的老师提过一句,说
    from tablea,tableb,tablec 这样的可能以后会被取缔。不知道是真是假?
      

  6.   

    这样,其实会比较好,去看JJ大哥的帖子,
    JOIN 是要ON的,
    而A,B这样可以不用WHERE 相当于CROSS JOIN
      

  7.   

    select * from tableA , tableB ,tableC
    where A.ap_no=B.ap_no AND B.ps_no=C.ps_no 
    AND os_no=某个值select A.* 
    From TableA A
    Join TableB B on B.ap_no = A.ap_no
    Join TableC C on C.ps_no = B.ps_no
    where C.os_no = value两种类型哪个效率高点呢
      

  8.   

    用inner join会不会效率更高呢?