我一直在寻找答案,但我无法弄清楚。我是SQL Server的新手,语法还不完善。我有这个数据结构(简化):
表“用户” | 表“标签”: UserID用户名| TagID用户ID照片ID 1鲍勃| 1 1 1 2帐单| 2 2 1 3简| 3 3 1 4山姆| 4 2 2 -------------------------------------------------- --- 表“照片”:表“相册”: PhotoID用户ID相册ID | 相册ID用户ID 1 1 1 | 1 1 2 1 1 | 2 3 3 1 1 | 3 2 4 3 2 | 5 3 2 |
我正在寻找一种方法来获取所有照片信息(简单)以及该照片的所有标签,就像CONCAT(username, ', ') AS Tags删除最后一个逗号一样。我正在花时间尝试这样做。我已经尝试了本文中的方法,但是在尝试运行查询时却出现错误,提示我无法使用DECLARE语句…你们知道如何做到这一点吗?我正在使用VS08以及安装了什么数据库(我通常使用MySQL,所以我不知道这到底是哪种DB的味道……这是一个.mdf文件?)
CONCAT(username, ', ') AS Tags
DECLARE
我将创建一个UDF:
create function GetTags(PhotoID int) returns @tags varchar(max) as begin declare @mytags varchar(max) set @mytags = '' select @mytags = @mytags + ', ' + tag from tags where photoid = @photoid return substring(@mytags, 3, 8000) end
然后,您要做的就是:
select GetTags(photoID) as tagList from photos