0

可能重复:
SQL Server:获得每个组的前 1 个

我在 MS SQL 中有 2 个表。tblProducts 和 tblProductsImage 之一。

所有产品都有最小值。2张图片。但我只想展示第一张图片,每一款产品。

我能做什么这个 INNER JOIN 和 SELECT 命令。

4

2 回答 2

1

尝试这样的事情:

 SELECT * 
FROM   TBLPRODUCTS T1 
       INNER JOIN (SELECT *, 
                          Row_number() 
                            OVER ( 
                              PARTITION BY PRODUCT_ID 
                              ORDER BY X) RN 
                   FROM   TBLPRODUCTSIMAGE)T2 
               ON T1.PRODUCT_ID = T2.PRODUCT_ID 
WHERE  T2.RN = 1 
于 2012-10-16T12:48:42.310 回答
1

如果你可以使用 apply 你可以使用这样的查询,但它是按 id 排序的

select *
from tblProducts as P
    outer apply
    (
        select top 1 T.Image from tblProductsImage as T
        where T.ProductId = P.Id
        order by T.Id
    ) as PI
于 2012-10-16T12:47:05.960 回答