重複の可能性:
SQL Server:各グループのトップ1を取得
MSSQLに2つのテーブルがあります。tblProductsとtblProductsImageの1つ。
そして、すべての製品には最小があります。2枚の写真。ただし、最初の画像、すべての製品のみを表示したいと思います。
このINNERJOINおよびSELECTコマンドで何ができますか。
重複の可能性:
SQL Server:各グループのトップ1を取得
MSSQLに2つのテーブルがあります。tblProductsとtblProductsImageの1つ。
そして、すべての製品には最小があります。2枚の写真。ただし、最初の画像、すべての製品のみを表示したいと思います。
このINNERJOINおよびSELECTコマンドで何ができますか。
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
次のようなものを試してください。
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