Бортовой журнал Ктулху

Подсчет количества строк в таблице, соответствующих записям в другой таблице

Суть проблемы: у меня есть две таблицы, в одной некоторые записи, а в другой таблице есть поля, содержащие 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