Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Количество записей в зависимых таблицах / 2 сообщений из 2, страница 1 из 1
04.07.2007, 21:31
    #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
04.07.2007, 23:06
    #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
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Количество записей в зависимых таблицах / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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