可能重复:
SQL Server:获得每个组的前 1 个
我在 MS SQL 中有 2 个表。tblProducts 和 tblProductsImage 之一。
所有产品都有最小值。2张图片。但我只想展示第一张图片,每一款产品。
我能做什么这个 INNER JOIN 和 SELECT 命令。
可能重复:
SQL Server:获得每个组的前 1 个
我在 MS SQL 中有 2 个表。tblProducts 和 tblProductsImage 之一。
所有产品都有最小值。2张图片。但我只想展示第一张图片,每一款产品。
我能做什么这个 INNER JOIN 和 SELECT 命令。
尝试这样的事情:
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
如果你可以使用 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