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
Далее Вы должны удалить последний разделитель и разделить в коде Ваши комментарии.