Используйте запрос GROUP BY
с STRING_AGG
:
SELECT
t1.ID,
t1.Data1,
STRING_AGG(t2.DataFromTable2, ',') AS data
FROM Table1 t1
LEFT JOIN Table2 t2
ON t1.ID = t2.ID
GROUP BY
t1.ID,
t1.Data1
WHERE
t1.ID = 1;
Я предполагаю, что вы используете SQL Server 2017 или более позднюю версию. Для более ранних версий SQL Server:
SELECT
t1.ID,
t1.Data1,
data = STUFF((
SELECT ',' + t2.DataFromTable2
FROM Table2 t2
WHERE t2.ID = t1.ID
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
FROM Table1 t1;