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

Суть такая, 3 таблицы:
A: id_a, name
B: id_b, id_a, name
C: id_c, id_b, name

Соответственно отношение один ко многим (одной записи в таблице A соответствует одна или несколько в B, одной записи в таблице B соответствует одна или несколько в C)

Что надо:
Запрос, который выведет A.id_a, A.name и соответствубщее им кол-во записей в B и C
...
Рейтинг: 0 / 0
Подскажите запрос
    #36311106
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное это не лучший вариант, зато голова не требуется
Код: plaintext
1.
2.
3.
select id_a, name_a,
  (select count(*) from B where A.id_a=B.id_A) as CountB
  (select count(*) from C,B where A.id_a=B.id_A and B.id_b=C.id_B) as CountC
from A
...
Рейтинг: 0 / 0
Подскажите запрос
    #36311563
Naf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rasterДавно мучаюсь.

Суть такая, 3 таблицы:
A: id_a, name
B: id_b, id_a, name
C: id_c, id_b, name

Соответственно отношение один ко многим (одной записи в таблице A соответствует одна или несколько в B, одной записи в таблице B соответствует одна или несколько в C)

Что надо:
Запрос, который выведет A.id_a, A.name и соответствубщее им кол-во записей в B и C
Код: plaintext
1.
2.
3.
select A.id_a, A.name, count(id_b) cb, count(id_c) cc
from A 
left join B on (A.id_a=B.id_a)
left join C on (B.id_b=B.id_b)
...
Рейтинг: 0 / 0
Подскажите запрос
    #36313958
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это неверно. будет 2 одинаковых счетчика
...
Рейтинг: 0 / 0
Подскажите запрос
    #36313974
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk07это неверно. будет 2 одинаковых счетчика
Код: plaintext
1.
2.
3.
4.
select A.id_a, A.name, count(distinct id_b) cb, count(distinct id_c) cc
from A 
left join B on (A.id_a=B.id_a)
left join C on (B.id_b=С.id_b)
group by A.id_a, A.name
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Подскажите запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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