powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / JOIN..JOIN
4 сообщений из 4, страница 1 из 1
JOIN..JOIN
    #39175532
dmitryinfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, проконсультируйте пожалуйста как правильно сделать выборку из нескольких таблиц с join по связям с группировкой по жанру с присоединением наименования книги, автора или по автору с присоединением наименования книги, жанра. По отдельности запросы формируются а вместе знаний не хватает.

Запросы:
select genre.genres, array_agg(books.name) from genre inner join books on genre.books_id = books.id group by genre.genres;
------------+----------------------------------------------------------------
Драма | {Чапаев,"Три толстяка"}
Учебник | {Ubuntu,VMWare,Basic,CentOS,"MS Project",Visio,"Windows 2008"}
Фантастика | {"Властелин колец",Мумия,Матрица}
Юмор | {Рыжик,Незнайка,Буратино}

select autors.fio, array_agg(books.name) from autors inner join books on books.autors_id = autors.id group by autors.fio;
-------------------------------------+--------------------------------------------------
Александров Александр Александрович | {"Windows 2008",Visio,"MS Project"}
Иванов Иван Иванович | {Рыжик,Чапаев,Буратино}
Петров Петр Петрович | {"Властелин колец","Три толстяка",Мумия,Матрица}
Семенов Семен Семенович | {Ubuntu,CentOS,VMWare,Basic}
Сидоров Сидор Сидорович | {Незнайка}
(5 rows)

Таблицы:
---+-------------------------------------
1 | Иванов Иван Иванович
2 | Сидоров Сидор Сидорович
3 | Петров Петр Петрович
5 | Семенов Семен Семенович
4 | Александров Александр Александрович
(5 rows)

products=# select * from books;
id | autors_id | name
----+-----------+-----------------
1 | 1 | Рыжик
2 | 1 | Чапаев
3 | 1 | Буратино
4 | 2 | Незнайка
5 | 3 | Три толстяка
6 | 3 | Мумия
7 | 3 | Матрица
8 | 3 | Властелин колец
9 | 4 | Visio
10 | 4 | MS Project
11 | 4 | Windows 2008
12 | 5 | Ubuntu
13 | 5 | CentOS
14 | 5 | VMWare
15 | 5 | Basic
(15 rows)

products=# select * from genre;
id | books_id | genres
----+----------+------------
1 | 1 | Юмор
2 | 2 | Драма
3 | 3 | Юмор
4 | 4 | Юмор
5 | 5 | Драма
6 | 6 | Фантастика
7 | 7 | Фантастика
8 | 8 | Фантастика
9 | 9 | Учебник
10 | 10 | Учебник
11 | 11 | Учебник
12 | 12 | Учебник
13 | 13 | Учебник
14 | 14 | Учебник
15 | 15 | Учебник
...
Рейтинг: 0 / 0
JOIN..JOIN
    #39175783
dmitryinfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос снят, разобрался.
...
Рейтинг: 0 / 0
JOIN..JOIN
    #39176674
dmitryinfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все таки помощь клуба нужна
3 таблицы
table1 table2 table3
id fio id name fio_id note id note name_id
1 fio_1 1 name_1 1 1 1 note_1 1
2 fio_2 2 name_2 1 1 2 note_2 2
3 fio_3 3 name_3 2 1 3 note_3 3
4 fio_4 4 name_4 3 2 4 note_4 4
5 fio_5 5 name_5 3 2
6 name_6 4 4
7 name_6 4 3
8 name_8 4 3
9 name_9 4 3
10 name_10 5 4
11 name_11 5 3
12 name_12 4 3

Запрос типа
select table3.note, table1.fio, array_agg(table2.name) from table3 join table2 on table2.note = table3.name_id join table1 on table1.id = table2.fio_id group by table3.note, table1.fio;

Выводит ответ с повторяющимися записями что то типа такого:

table3 | table1 | array_agg
------------+--------------------------+-----------------------------------
note_1 | fio_1 | name_1
note_1 | fio_2 | name_2
note_2 | fio_4 | name_3, name4
note_2 | fio_3 | name_5, name_6
note_3 | fio_1 | name_7,name_8,name_9
note_3 | fio_3 | name_10
note_4 | fio_5 | name_11,name_12

как составить select так чтобы была группировка в table3 b table1 по записям и не было повторений, ну и в array_agg объединялись записи
...
Рейтинг: 0 / 0
JOIN..JOIN
    #39177194
dmitryinfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, все таки вопрос снят.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / JOIN..JOIN
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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