我有三张桌子:Images
桌子,Product
桌子和ProductGallery
桌子。我的图像表有两列
这样:
ID Path
1 JeffAtwood.jpg
2 GeoffDalgas.jpg
3 Jarrod Dixon.jpg
4 JoelSpolsky.jpg
我的Products
表有两列:
ID Image ID
1 1
2 2
3 3
4 4
我的ProductGallery
有三列
ID ImageID ProductID
1 1 1
2 2 1
3 3 1
4 4 1
5 1 2
6 2 2
7 3 2
8 4 2
我需要创建一个存储过程,为我返回产品列表的所有路径
所以我有一个参数叫做@ids NVARCHAR(MAX)
其中我需要的所有产品 ID 都用逗号分隔每个值。
所以我有 :
@ids = '1' + ','+ '2'+',' ..... and so on
任何人都可以帮助我编写 sql 语句为我完成这项工作吗?
到目前为止我有这个
Declare @Ids VARCHAR(MAX)
select @Ids = '1';
select P.ID ,I.Path from Images I
left outer join Products P on (I.ID IN(select ImageID from Products where ID in (SELECT Items FROM Split(@Ids,','))))
left outer join ProductGallery PG on (PG.ImageID = I.ID)
WHERE PG.ProductID IN(SELECT Items FROM Split(@Ids,',')) AND P.ID IN
(SELECT Items FROM Split(@Ids,','))
GROUP BY P.ID, I.Path
注意@Ids
参数已经填充了值,我将从我的 C# 代码中传递它。