我正在创建一个包含相册的图片库。图库所有者可以先创建一个或多个相册,然后创建要添加到这些相册的图像。我不得不使用多个视图模板来解决这个问题。无论如何,这就是让我失望的原因。这是我的存储过程的核心:
DECLARE @MyString VARCHAR(MAX)
SELECT @MyString = ISNULL(@MyString + ' ', ' ') + CAST(AlbumID AS VARCHAR(10)) + ' '
FROM BD_AlbumGallery
WHERE ImageID = PROBLEM HERE... Dont know what to do <---
ORDER BY AlbumID
SELECT a.[ImageID]
,a.ImageFile
,a.[ImageTitle]
,a.[ImageCaption]
,a.[Description]
,a.[Active]
,b.[AlbumID]
,b.[ImageID]
,c.[ListingID]
,c.[Active]
,c.[LevelID]
,c.[Title]
,@MyString AS AlbumClass
FROM BD_Gallery A
JOIN BD_AlbumGallery B
ON a.ImageID = b.ImageID
JOIN BD_Listing C
ON a.ListingID = c.ListingID
WHERE a.ListingID = @passedListingID
AND a.Active = 1
AND c.Active = 1
AND c.LevelID > 5
所以问题是,在LI内检索数据 当然还有一个...猜猜显然......在我的画廊模板中正确显示。
我遇到的唯一问题是我需要将@MyString AS AlbumClass绑定到a.ImageID或b.ImageID,因为它们是相同的。
原因是,模板中的专辑是由一个类定义的。
<li class="12 24 15 17">Rest of my code for a single image result</li>
因此,AlbumID被用作类名允许我将它们分配到jQuery下拉类别/专辑列表中,该列表位于此之前的模板中。我在想SubQuery。最终,我需要将结果(出于其他原因)显示在一个结果集中。
请帮助..仍然试图通过学习曲线。
谢谢!
答案 0 :(得分:2)
select
a.[ImageID],
a.ImageFile,
a.[ImageTitle],
a.[ImageCaption],
a.[Description],
a.[Active],
c.[ListingID],
c.[Active],
c.[LevelID],
c.[Title],
stuff
(
(
select ' ' + CAST(TT.AlbumID AS VARCHAR(10))
from BD_AlbumGallery as TT
where TT.[ImageID] = A.[ImageID]
for xml path(''), type
).value('data(.)', 'nvarchar(max)')
, 1, 1, '') as Listings
from BD_Gallery as A
left outer join BD_Listing as C on a.ListingID = c.ListingID
where
a.ListingID = @passedListingID and
a.Active = 1 and c.Active = 1 and
c.LevelID > 5