2

希望这很简单,但我想做的只是为 CartContents 表中的每个产品拉回 1 行。我遇到的问题是某些产品有多个图像,所以如果有超过 1 个图像链接到一个产品,这些图像将被返回。

这是我创建的,但它仍然为每个产品拉回多行。

SELECT DISTINCT (pri.FileName), p.Title, tc.Quantity, tc.FK_ProductID
    FROM [Ordering].[CartContents] tc
    INNER JOIN [Ordering].[Products] p ON p.ProductID = tc.FK_ProductID
    INNER JOIN [Ordering].[ProductImages] pri on pri.FK_ProductID = p.ProductID
    WHERE FK_UserID = @FK_UserID

谢谢

4

1 回答 1

4

假设您没有文件名,“in”会解决这个问题:

SELECT p.Title, tc.Quantity, tc.FK_ProductID
FROM [Ordering].[CartContents] tc  INNER JOIN
     [Ordering].[Products] p
     ON p.ProductID = tc.FK_ProductID
where p.ProductID in (select pri.FK_ProductID 
                      from [Ordering].[ProductImages] pri
                     ) and
      FK_UserID = @FK_UserID 

使用文件名,您必须任意选择一个:

SELECT min(pri.FileName) as FileName, Title, tc.Quantity, tc.FK_ProductID
FROM [Ordering].[CartContents] tc  INNER JOIN
     [Ordering].[Products] p
     ON p.ProductID = tc.FK_ProductID INNER JOIN
     [Ordering].[ProductImages] pri on pri.FK_ProductID = p.ProductID
where FK_UserID = @FK_UserID 
group by Title, tc.Quantity, tc.FK_ProductID
于 2012-07-10T21:13:54.883 回答