Добрый день.
Возможно ли средствами SQL вытащить такое:
Есть 2 таблицы. Во второй есть столбец, где каждому значению из 1-й может соответсвовать одно или несколько значений или вообще нет соответствия.
Делаю запрос, сливают таблицы LEFT JOIN, потом группирую GROUP BY, чтобы получить по одному значению из таблицы 1. Но желательно вытащить и те данные, которых в таблице 2 больше одного, причем в одну ячейку результата.
Например:
Табл.1
1.Иванов
2.Петров
3.Сидоров
Табл.2
1.Завсклад
1.Товаровед
2.Дворник
Нужен результат:
Иванов - Завсклад, Товаровед
Петров - Дворник
Сидоров -
Простой выбор без группировки не годится, надо чтобы Поле из таблицы 1 (в примере фамилия) была по 1 разу.
А если на предприятиии будут
А если на предприятиии будут работть два Иванова, один завсклад, другой водитель?
Разумеется таблица в
Разумеется таблица в упрощенном виде.
У каждого работника свой уникальный id по которому во второй таблице и стоят соответствующие профессии. В примере это номера 1-3.
Реальная задача много сложнее и таблиц связывается более десятка.
Мне сам принцип понять - можно ли такое реализовать не средствами языка программирования, например PHP, а одним запросом к таблице с вложенными запросами.
WITH t1 AS (SELECT 1 id,
Спасибо. Функция string_agg
Спасибо.
Функция string_agg решила проблему.