如何从mssql中的一个到多个相关表中的每个id获取单个记录

时间:2019-04-16 09:50:08

标签: sql sql-server group-by one-to-many

我有一对多的相关表格;产品表,以及每个ProductID的图像。图像可以存在一个或多个或完全不存在的productID。因此,如果图像不存在,我将保留它们的外部联接,记录将为null。

我通过类别ID选择它们,这意味着也可以有其他产品,所以我不能使用前1名。

我的查询:

select p.ID,p.ProductName,pc.CategoryID, pic.BigPath
from tbl_Products p
LEFT join tbl_ProductToCategory pc on p.ID = pc.ProductID
left outer join tbl_ProductImages pic on pic.ProductID = p.ID
where pc.CategoryID = 1174

由于表ProductImages,以上查询将获取具有多个记录的所有产品。

我需要从产品图片表中获取一条记录;例如:具有最小图片ID的图片。

上述查询可获取以下信息:

ID   ProductName  CategoryID  BigPath

311  a            1174        www.blabla.com/cdn/a..
313  b            1174        www.blabla.com/cdn/b..
318  c            1174        www.blabla.com/cdn/c1..
318  c            1174        www.blabla.com/cdn/c2..
318  c            1174        www.blabla.com/cdn/c3..

我希望:

ID   ProductName  CategoryID  BigPath
311  a            1174        www.blabla.com/cdn/a..
313  b            1174        www.blabla.com/cdn/b..
318  c            1174        www.blabla.com/cdn/c1..

如何从ProductImages表中获得一条记录?

1 个答案:

答案 0 :(得分:0)

使用[interests : ["Olahraga", "Sains", "Musik"]]

row_number()