Помощь по запросу присоединения TSQL - PullRequest
1 голос
/ 14 сентября 2010

На основе приведенных ниже таблиц

declare @t1 table
(
    Id int,
    Title varchar(100),
    RelatedId int
)
insert into @t1 values(1,'A',2)
insert into @t1 values(1,'A',3)

declare @t2 table
(
    Id int,
    Title varchar(100)
)
insert into @t2 values
(2,'B'),
(3,'C')

Я пытаюсь получить вывод ниже

Id    Title     RelatedItems 
---------------------------------
1     A         2 (B), 3 (C)

Я пробовал следующее:

select t1.Id,t1.Title, cast(t2.Id as varchar) + ' (' + t2.Title + ')' from @t1 as t1
left outer join @t2 as t2
on t1.RelatedId=t2.Id

Но этодает 2 разных ряда.Я хочу только одну строку с данными, объединенными в третьем столбце (как показано выше).Pls.предложить.

1 Ответ

3 голосов
/ 14 сентября 2010

Использование:

SELECT DISTINCT
       b.id,
       b.title,
       STUFF((SELECT ','+ CAST(t2.id AS VARCHAR(100)) + ' ('+ t2.title +')'
                FROM t2
                JOIN t1 a ON a.relatedid = t2.id
               WHERE a.id = b.id
             FOR XML PATH('')), 1, 1, '')
  FROM t1 b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...