Выберите несколько строк в таблице из другой строки, которая содержит несколько значений, разделенных запятыми - PullRequest
1 голос
/ 21 марта 2019

У меня есть одна таблица с заголовками и идентификаторами тегов, которая называется TaggedTitles.У меня есть вторая таблица, которая содержит теги и теги.Таблица 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

TitleTable

TAG_ID  TITLE       
-------------
  1     FRUIT       
  2     FRUIT       
  3     FRUIT       

Таблица тегов

TAG_ID  TAG     
----------------------
  1     ORANGES     
  2     APPLES      
  3     PEARS       

Необходимый результат: Oranges,Apples,Pears из параметра 'Fruit'

1 Ответ

1 голос
/ 22 марта 2019

Попробуйте объединить 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...