1

我正在创建一个带有相册的图片库。图库所有者可以先创建一个或多个相册,然后创建图像以添加到这些相册。我不得不使用多个视图模板来实现这一点。无论如何,这就是让我感到困惑的原因。这是我的存储过程的核心:

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 下拉类别/专辑列表,该列表位于此之前的模板中。我在想一个子查询。最终,我需要将结果(出于其他原因)显示在一个结果集中。

请帮助.. 仍然试图通过学习曲线推动我的方式。

谢谢!

  • 帕特里克
4

1 回答 1

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
于 2012-10-22T06:43:12.137 回答