SELECT TOP 20 [SellID],[SortID],[Title] FROM [T_Sell] WHERE title like '%%' AND SellID IN (SELECT TOP 20 [SellID] FROM (SELECT SellID FROM [T_Sell_Property] WHERE ValueString='黑色' AND LabelID=2)  AS NONO  ORDER BY SellID DESC) ORDER BY SellID DESC
万分感激

解决方案 »

  1.   

    SELECT TOP 20 [SellID],[SortID],[Title] FROM [T_Sell]  WHERE  SellID IN  (SELECT SellID  FROM [T_Sell_Property] WHERE ValueString='黑色' AND LabelID=2) ORDER BY SellID DESC
      

  2.   

    谢谢 xmlquit的好意.
    可你给的这个方案不是优化.
    SellID IN  里面的 top 20是我故意的。
    目的是减少 in的条件我希望最好能抛弃这个IN换一个更高效的方法
      

  3.   

    SELECT TOP 20 [SellID],[SortID],[Title] FROM [T_Sell] WHERE title like '%%' AND SellID IN (SELECT TOP 20 [SellID] FROM (SELECT SellID FROM [T_Sell_Property] WHERE ValueString='黑色' AND LabelID=2)  AS NONO  ORDER BY SellID DESC) ORDER BY SellID DESC
    select TOP 20 [SellID],[SortID],[Title] 
    FROM [T_Sell] as a ,
    (SELECT TOP 20 SellID FROM [T_Sell_Property] 
    WHERE ValueString='黑色' AND LabelID=2 ORDER BY SellID DESC) as NONO
    WHERE title like '%%' 
    AND a.SellID =NONO.SellID
     ORDER BY SellID
      

  4.   

    SELECT TOP 20 a.[SellID],a.[SortID],a.[Title] 
    FROM [T_Sell] as a inner join T_Sell_Property as b on a.SellID = b.SellID
    WHERE b.ValueString='黑色' AND b.LabelID=2 
    ORDER BY a.SellID DESC
      

  5.   

    我写了个,楼主看看...呵呵
    Select b.* 
    From (
           Select Top 20 SellID
           From T_Sell_Property
           Where ValueString='黑色' AND LabelID=2
    ) a Left Join 
    (
           Select SellID,SortID,Title 
           From   T_Sell 
           Where  title like '%%' ) b 
    On a.SellID = b.SellID
    Order By b.SellID