powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Количество записей в зависимых таблицах
2 сообщений из 2, страница 1 из 1
Количество записей в зависимых таблицах
    #34639411
vvovan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть основная таблица и несколько дополнительных, которые связаны с основной. (тип связи один ко многим).
Что-то никак не соображу, как можно выбрать количество зависящих записей в дополнительных таблицах для каждой записи из основной таблицы?

Пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
CREATE TABLE tmain
(
  id integer NOT NULL
) 

CREATE TABLE t1
(
  id integer NOT NULL,
  main_id integer NOT NULL
) 

CREATE TABLE t2
(
  id integer NOT NULL,
  main_id integer NOT NULL
) 

INSERT INTO tMain(id)
SELECT  1 
UNION
SELECT  2 

INSERT INTO t1(id, main_id)
SELECT  1 ,  1 
UNION
SELECT  2 ,  1 
UNION
SELECT  3 ,  2 
UNION
SELECT  4 ,  2 
UNION
SELECT  5 ,  2 
UNION
SELECT  6 ,  2 


INSERT INTO t2(id, main_id)
SELECT  7 ,  1 
UNION
SELECT  8 ,  1 
UNION
SELECT  9 ,  1 
UNION
SELECT  10 ,  1 
UNION
SELECT  11 ,  2 
UNION
SELECT  12 ,  2 

SELECT M.id, count(t1.id), count(t2.id)
FROM tMain M
INNER JOIN t1 ON (M.ID = t1.main_id)
INNER JOIN t2 ON (M.ID = t2.main_id)
GROUP BY M.id

этот запрос выводит
id cnt1 cnt2188288
а хотелось бы получить
id cnt1 cnt2124242

Подскажите, как нужно переделать запрос?
...
Рейтинг: 0 / 0
Количество записей в зависимых таблицах
    #34639504
Thamerlan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT M.id, c_t1, c_t2
FROM   tMain M
       INNER JOIN
       (SELECT main_id,
              Count(id) AS c_t1
       FROM   t1
       GROUP  BY main_id) t1 ON (M.ID = t1.main_id)
       INNER JOIN
       (SELECT main_id,
               Count(id) AS c_t2
        FROM   t2
        GROUP  BY main_id) t2 ON (M.ID = t2.main_id);
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Количество записей в зависимых таблицах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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