Суть проблемы: у меня есть две таблицы, в одной некоторые записи, а в другой таблице есть поля, содержащие ID записей из первой таблицы. Нужно посчитать во второй таблице сколько записей соответствует полям из первой таблицы.
Я постарался представить это на примере школы, где есть классы (первая таблица), в которых находятся ученики (вторая таблица) и нужно посчитать сколько учеников в каждом из классов.
В таблице “tPupil” в поле class записи хранят ID классов из таблицы “tClass”
tClass
id | name |
1 | Класс А |
2 | Класс Б |
Это классы в школе.
В таблице “tPupil” список учеников школы. Нужно посчитать сколько учеников содержит каждый из классов.
tPupil
surname | class |
Иванов | 1 |
Петров | 2 |
Сидоров | 1 |
Козлобаянова | 1 |
select
a.id,
a.name,
(select count(*) from tPupilas b where b.class = a.id group by b.class) as cnt
from
tClass as a
В результате будет:
1 | Класс А | 3 |
2 | Класс Б | 1 |