select top 4 Car_Num,b.Goods_ID,Goods_Path,Goods_Name,Goods_MarketPrice,Goods_MemberPrice from Car as a inner join GoodsInfo as b on a.Goods_ID= b.Goods_ID where Car_Jiezhang=1 order by a.Car_Num desc
我的sql语句是那样,可是取出来的前四条Goods_ID会重复,要怎么改?
我用了distinct可是不知道怎么放
帮帮小弟

解决方案 »

  1.   

    加distinct试试!!
    select distinct top 4 Car_Num,b.Goods_ID,Goods_Path,Goods_Name,Goods_MarketPrice,Goods_MemberPrice from Car as a inner join GoodsInfo as b on a.Goods_ID= b.Goods_ID where Car_Jiezhang=1 order by a.Car_Num desc
      

  2.   

    select distinct top 4
      

  3.   


    --试试这种
    select top 4 Car_Num,b.Goods_ID,Goods_Path,Goods_Name,Goods_MarketPrice,Goods_MemberPrice 
    from Car as a 
    left join 
    (
      select Goods_ID from GoodsInfo group by Goods_ID
    )
      b on a.Goods_ID= b.Goods_ID 
    where Car_Jiezhang=1 
    order by a.Car_Num desc
      

  4.   

    你是想要过滤特定字段的重复而不是整个语句的重复,所以不能用Distinct来实现。建议用left join...on...或则right join... on...来实现。。