重複を返す SQL クエリを微調整するのに問題があります。「ウィッシュリスト」からデータを返す単純なクエリです。ウィッシュリストの構造はシンプルです。それにフィードする6つのテーブル:
Products - 製品のリスト、Images - 画像のリスト、Users - ユーザーのリスト、link_ProductsImages - 製品を画像にリンクし、1 対多の関係 (潜在的に)、Wishlist - ユーザーを製品 (およびプロキシによる画像) にリンクします。
次のシナリオを設定するサンプルのふりデータを次に示します。1 人のユーザー (100) は、ウィッシュリスト (1,2) に 2 つの製品を持っています。ProductID 1 には 1 つの画像 (10) が関連付けられており、ProductID 2 には 3 つの画像 (11、12、13) が関連付けられています。
目標は、クエリで製品ごとに 1 行を返すことです。製品と画像が 1 対多であるため、ProductID 2 で重複が返されます。誰か助けてもらえますか? StackOverflow で見つけたいくつかのことを試しましたが、クエリを解決できないようです。
商品 商品 ID - 1,2
ユーザー ユーザー ID - 100
画像 ImageID - 10、11、12、13
Link_ProductsImages 製品 ID、画像 ID - 1,10 2,11 2,12 2,13
ウィッシュリスト UserID、ProductID - 100、1 100、2
select w.WishlistID, p.*,
isnull(i.ImageFile, 'na.jpg') as ImageFile
from Products p
inner join Wishlist w on w.UserID = 4 and w.ProductID = p.ProductID
left outer join Link_ProductImage lpi on lpi.ProductID = p.ProductID
left outer join Images i on i.ImageID = lpi.ImageID