SQL Выборка из двух таблиц где значения второй таблицы записаны в результирующий массив под определенным ключем

Вроде простой вопрос но почему то не получается найти решение.

Есть две таблицы. Например users и их comments.

users:
id = 111

comments:
id = 111111
user_id = 111
comment = text comment


id = 222222
user_id = 111
comment = text comment

Как сделать sql запрос чтобы выбрать юзера с его комментариями вот так: (в массив user подставить массив comments с заданным ключем comments

    Array (
       [id] => 111
       [comments] => array (
                       [0] => Array (
                              [id] = 22222
                              [user_id] = 111
                              [comment] = text comment
                             ) 
                       [1] => Array (
                              [id] = 22222
                              [user_id] = 111
                              [comment] = text comment
                             )
       )
    )

Ответы (1 шт):

Автор решения: Aziz Umarov

Любая выборка это результирующий набор умножения таблиц. то есть select userid, comment from user, comments то есть таблица с заполненными данными, ели вы хотите получить все комментарии в одной записи то это возможно.

    SELECT
        comments.userId     
        , (SELECT 
                'comment: ' + comments1.text + '|' AS [text()] 
            FROM comments AS comments1
            WHERE 
                comments1.userId = comment.userId
            FOR XML PATH ('')) allComments
    FROM 
        comments
    GROUP BY 
        comments.userId

Далее Вы должны удалить последний разделитель и разделить в коде Ваши комментарии.

→ Ссылка