|
|
|
postgres - group_concat
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, просвятите новичка: есть две таблицы 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 посоветуйте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 17:21 |
|
||
|
postgres - group_concat
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 17:44 |
|
||
|
postgres - group_concat
|
|||
|---|---|---|---|
|
#18+
dmitryinfo, в MySQL много чего работает. там и int8 в int4 запихнуть можно (правда то что запихнутое значение будет правильным дело визения), и GROUP BY можно делать неявным, т.е. порядок как MySQL заблагорассудится будет. а вот PostgreSQL педант. я уверен что он даже в тексте ошибки вам сказал что надо делать. т.е. добавте поле autors.id в GROUP BY. и уверен сей селект будет работать и в MySQL'е, и в PostgreSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 18:15 |
|
||
|
postgres - group_concat
|
|||
|---|---|---|---|
|
#18+
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; Имя автора | Наименование книги -----------------+-------------------------------------------- Иван Иванович | {Незнайка} Петр Петрович | {Чапаев,Рыжик,"Три мушкетера",Золушка} Сидор Сидорович | {"Железный поток","Три толстяка",Буратино} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 18:36 |
|
||
|
postgres - group_concat
|
|||
|---|---|---|---|
|
#18+
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 --------------------------------------------- Иван Иванович,Сидор Сидорович,Петр Петрович Иван Иванович,Сидор Сидорович,Петр Петрович Иван Иванович,Сидор Сидорович,Петр Петрович ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2016, 18:47 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39169793&tid=1997438]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
194ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 515ms |

| 0 / 0 |
