Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как вывести значения через запятую. (Перемножив одну таблицу на другую через Join)

Ксения Данченко Мастер (2239), закрыт 6 лет назад
SELECT
permission.ID,
.username
FROM
confluencedb.SPACEPERMISSIONS permission
INNER JOIN confluencedb.user_mapping usermap
ON permission.USERNAME = usermap.user_key
WHERE
permission.ID IN (1,2,3,4,10,11);

Надо чтобы было примерно так
permission | usermap
1 | mike, John
2 | Sarah, Alexander, Ivan
Дополнен 6 лет назад
SELECT
permission.ID,
usermap.username
FROM
confluencedb.SPACEPERMISSIONS permission
INNER JOIN confluencedb.user_mapping usermap
ON permission.USERNAME = usermap.user_key
WHERE
permission.ID IN (1,2,3,4,10,11);
Лучший ответ
李西青 Просветленный (42541) 6 лет назад
SELECT permission.ID, group_concat(username)
FROM
....
GROUP BY permission.ID
Jurijus ZaksasИскусственный Интеллект (439561) 6 лет назад
Тогда уж group_concat(username||', ')
И еще последнюю запятую нужно обрубать.
李西青 Просветленный (42541) придумывать себе трудности, чтобы потом их героически преодолевать?
Остальные ответы
Jurijus Zaksas Искусственный Интеллект (439561) 6 лет назад
Нужно использовать функцию группировки значений. На Оракле - примерно так:

SELECT
permission.ID,
LISTAGG(.username, ',') WITHIN GROUP (ORDER BY .username) AS employees
FROM
confluencedb.SPACEPERMISSIONS permission
INNER JOIN confluencedb.user_mapping usermap
ON permission.USERNAME = usermap.user_key
WHERE
permission.ID IN (1,2,3,4,10,11)
GROUP BY permission.ID
Похожие вопросы