Sql 内部联接,每个产品仅返回1行

Sql 内部联接,每个产品仅返回1行,sql,Sql,希望这是一件简单的事情,但我试图做的是只为CartContents表中的每个产品向后拉1行。我遇到的问题是,一些产品有多个图像,因此,如果有多个图像链接到一个产品,就会返回这些图像 这是我创建的,但是它仍然为每个产品返回多行 SELECT DISTINCT (pri.FileName), p.Title, tc.Quantity, tc.FK_ProductID FROM [Ordering].[CartContents] tc INNER JOIN [Ordering].[Pr

希望这是一件简单的事情,但我试图做的是只为CartContents表中的每个产品向后拉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

“谢谢”

如果您没有文件名,您将解决此问题:

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

在中,如果没有文件名,则可以解决此问题:

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

什么数据库引擎?如果每个产品只有一行-哪一行?您希望两个图像都在一行中返回还是只返回第一个图像?请参见此处:同样的事情解释得很好。什么DB引擎?如果每个产品只有一行-哪一行?你想在一行中返回两个图像还是只返回第一个图像?请看这里:同样的事情解释得很好。谢谢Gordon,这是完美的谢谢Gordon,这是完美的