希望这很简单,但我想要做的只是在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
由于
答案 0 :(得分: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