Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / postgres - group_concat / 6 сообщений из 6, страница 1 из 1
12.02.2016, 17:21
    #39169772
dmitryinfo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
postgres - group_concat
Здравствуйте, просвятите новичка:

есть две таблицы autors и book пытаюсь объединить по совпадающим данным book.autors_id = autors.id

Запрос в MySQL отрабатывает !
select autors.id, autors.fio, group_concat(book.name) from autors join book on book.autors_id = autors.id group by autors.fio;

Пытаюсь сделать это в postrges
select autors.id, autors.fio, book.name from autors inner join book on book.autors_id = autors.id order by autors.fio;

не сортируется по book.autors_id = autors.id выдает только autors.fio по нескольку раз в строке
рекомендуют на формуе array_to_string воспользоваться, хватило понимания на

select array_to_string (ARRAY (select autors.fio from "autors"),',') from autors inner join book on book.aut
ors_id = autors.id group by autors.id;

но выводит только данные по autors.fio а мне необходимо join book.autors_id = autors.id

посоветуйте.
...
Рейтинг: 0 / 0
12.02.2016, 17:44
    #39169793
big-trot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
postgres - group_concat
dmitryinfoЗдравствуйте, просвятите новичка:

есть две таблицы autors и book пытаюсь объединить по совпадающим данным book.autors_id = autors.id

Запрос в MySQL отрабатывает !
select autors.id, autors.fio, group_concat(book.name) from autors join book on book.autors_id = autors.id group by autors.fio;

Пытаюсь сделать это в postrges
select autors.id, autors.fio, book.name from autors inner join book on book.autors_id = autors.id order by autors.fio;

не сортируется по book.autors_id = autors.id выдает только autors.fio по нескольку раз в строке
рекомендуют на формуе array_to_string воспользоваться, хватило понимания на

select array_to_string (ARRAY (select autors.fio from "autors"),',') from autors inner join book on book.aut
ors_id = autors.id group by autors.id;

но выводит только данные по autors.fio а мне необходимо join book.autors_id = autors.id

посоветуйте.

SELECT autors.fio, array_agg( book.name )
FROM autors
INNER JOIN book ON book.autors_id = autors.id
GROUP BY autors.fio
ORDER BY autors.fio
...
Рейтинг: 0 / 0
12.02.2016, 18:15
    #39169822
Lonepsycho
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
postgres - group_concat
dmitryinfo,

в MySQL много чего работает. там и int8 в int4 запихнуть можно (правда то что запихнутое значение будет правильным дело визения), и GROUP BY можно делать неявным, т.е. порядок как MySQL заблагорассудится будет. а вот PostgreSQL педант. я уверен что он даже в тексте ошибки вам сказал что надо делать. т.е. добавте поле autors.id в GROUP BY. и уверен сей селект будет работать и в MySQL'е, и в PostgreSQL.
...
Рейтинг: 0 / 0
12.02.2016, 18:36
    #39169848
dmitryinfo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
postgres - group_concat
big-trot,
Спасибо большое!!! То что надо привожу результат:

select autors.fio as "Имя автора", array_agg(book.name) as "Наименование книги" from autors inner join book on book.autors_id = autors.id group by autors.fio order by autors.fio;

Имя автора | Наименование книги
-----------------+--------------------------------------------
Иван Иванович | {Незнайка}
Петр Петрович | {Чапаев,Рыжик,"Три мушкетера",Золушка}
Сидор Сидорович | {"Железный поток","Три толстяка",Буратино}
...
Рейтинг: 0 / 0
12.02.2016, 18:47
    #39169863
dmitryinfo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
postgres - group_concat
Lonepsycho,

нет он просто не работал как надо

select array_to_string (ARRAY (select autors.fio from "autors"),',') from autors inner join book on book.aut
ors_id = autors.id group by autors.fio;
array_to_string
---------------------------------------------
Иван Иванович,Сидор Сидорович,Петр Петрович
Иван Иванович,Сидор Сидорович,Петр Петрович
Иван Иванович,Сидор Сидорович,Петр Петрович
...
Рейтинг: 0 / 0
12.02.2016, 18:47
    #39169865
dmitryinfo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
postgres - group_concat
спасибо еще раз, буду изучать дальше
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / postgres - group_concat / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]