Из какой базы данных поступает эта информация?
Если вы используете Sql Server
, вы можете объединить данные в вашем запросе следующим образом:
declare @student table (studentid int, name varchar(20))
declare @class table (classid int, name varchar(20))
declare @studentclass table (studentid int, classid int)
insert into @student values (1, 'john'), (2, 'mary')
insert into @class values (1, 'english'), (2, 'mathematics')
insert into @studentclass values (1, 1), (1, 2), (2, 1)
select s.studentid,
s.name,
stuff(( replace (( select ' - ' + c.name
from @class c
inner join @studentclass sc on c.classid = sc.classid
where sc.studentid = s.studentid
order by c.name
For XML PATH ('')), '', '')
), 1, 3, '') as classes
from @student s
Это вернет этот результат:
studentid name classes
--------- ---- -------
1 john english - mathematics
2 mary english
Другие базы данных могут сделать это также, синтаксис будет отличаться от курса