如题,请解释一下,为什么一个能查出数据,一个不能?Select a.FItemClassID, c.FNumber From t_ItemDetailV a ,t_Account b, t_ItemClass c 
Where b.FAccountID=1000 AND a.FItemID in (-1,-2) And a.FDetailID=b.FDetailID And a.FItemClassID=c.FItemClassID 结果
FItemClassID   FNumber-----------------------------------------select a.FItemClassID, c.FNumber From t_ItemDetailV a 
inner join t_Account b on a.FDetailID = b.FDetail 
inner join t_ItemClass c on a.FItemClassID = c.FItemClassID 
where b.FAccountID=1000 and  a.FItemID in (-1,-2)结果
FItemClassID   FNumber
1              001-----------------------------------------

解决方案 »

  1.   

    --先放连接条件,然后放限制条件,这样就能取到数据
    Select a.FItemClassID, c.FNumber 
    From t_ItemDetailV a ,t_Account b, t_ItemClass c  
    Where  a.FDetailID=b.FDetailID And a.FItemClassID=c.FItemClassID  
    and b.FAccountID=1000 AND a.FItemID in (-1,-2)
    --和下边的语句是一样的都能取到数据了
     select a.FItemClassID, c.FNumber From t_ItemDetailV a  
    inner join t_Account b on a.FDetailID = b.FDetail  
    inner join t_ItemClass c on a.FItemClassID = c.FItemClassID  
    where b.FAccountID=1000 and a.FItemID in (-1,-2)
      

  2.   

    第一个是老的SQL语句吧,我怀疑MS SQL2008不兼容以前的SQL语句了?
      

  3.   

    第二个的条件a.FDetailID = b.FDetail  与第一个的条件
    a.FDetailID=b.FDetailID 不一样