Products が Pictures にマッピングされているテーブルがあります。写真付きの 1 対 n マッピングを持つ製品があります。マッピングを適切に表示するために、SQL を作成して、ProductId でグループ化して表示できるようにしました。
SELECT [Id]
,[ProductId]
,[PictureId]
,[DisplayOrder]
FROM [LandOgFritid23].[dbo].[Product_Picture_Mapping]
Where ProductId in (select ProductId
FROM [LandOgFritid23].[dbo].Product p,
[LandOgFritid23].[dbo].[Product_Picture_Mapping] pm
where p.Id = pm.ProductId
group by ProductId
having COUNT(pm.PictureId) > 3
)
order by ProductId
結果:
Id ProductId PictureId DisplayOrder
2085 103 2388 2
2185 103 2488 1
7132 103 7468 1
7133 103 7469 1
2158 107 2461 0
320 107 415 1
3485 107 3816 1
3486 107 3817 1
3529 107 3860 1
現在、リクエストは各製品につき最大3枚の写真のみを許可することです. 製品の 4 番目、5 番目、n 番目のマッピングである行を削除するための DELETE ステートメントを作成するのは非常に難しいと思います。
これが可能かどうか、何か考えはありますか?
したがって、このデータを使用した削除後の結果は次のようになります。
Id ProductId PictureId DisplayOrder
2085 103 2388 2
2185 103 2488 1
7132 103 7468 1
2158 107 2461 0
320 107 415 1
3485 107 3816 1
ありがとう