我有一张表,其中包含标题和标签ID,称为TaggedTitles
。我有第二个表,其中包含标签和TagID。 TaggedTitles
表具有与每个标题关联的多个标签。例如:
TaggedTitles
表:与标题“汽车”相关联的TagID
列包含:1,5,7,表示“标签”表中的标签。在此示例中,1、5、7表示标签:车轮,油漆,地毯。我需要加入“标签”表以使用“汽车”作为参数返回车轮,油漆,地毯。
SELECT
Tags.TAGS
FROM
Tags
LEFT JOIN
TaggedTitles ON TaggedTitles.TAGID = Tags.TAGID
WHERE
TaggedTitles.TITLE = @Title
标题表
TAG_ID TITLE
-------------
1 FRUIT
2 FRUIT
3 FRUIT
标签表
TAG_ID TAG
----------------------
1 ORANGES
2 APPLES
3 PEARS
需要的结果:Oranges,Apples,Pears
来自参数“水果”
答案 0 :(得分:1)
尝试将XML PATH与STUFF语句组合在一起。
例如:
DECLARE @INFO TABLE (TAG_ID int, TITLE varchar(10))
INSERT @INFO VALUES (1,'ORANGES')
INSERT @INFO VALUES (2,'APPLES')
INSERT @INFO VALUES (3,'PEARS')
SELECT STUFF((
SELECT ','+TITLE
FROM @INFO
FOR XML PATH('')
),1,1, '') AS FRUITS