Сколько раз внешний ключ используется в другой таблице?
Предположим, что есть 2 таблицы(просто для примера привожу).
1 таблица - prof
2 таблица - per
CREATE TABLE prof (
id_prof int(4) NOT NULL PRIMARY KEY AUTO_INCREMENT,
name varchar(40)
)
CREATE TABLE per (
id_per int(2) NOT NULL PRIMARY KEY AUTO_INCREMENT,
name varchar(40),
id_prof int(4) FOREIGN KEY
)
Т.е. есть таблица с профессиями(prof) и с сотрудниками(per), в таблице с сотрудниками есть внешний ключ по которому мы задаем профессию
Как сделать такой запрос чтобы можно было вывести все данные из таблицы с профессиями(prof) + новый столбец, где напротив каждой записи профессии будет количество сотрудников с данной профессией(т.е сколько раз внешний ключ использовался в таблице per).
Например, если в таблице 10 сотрудников из них 4 программиста и 6 администраторов, то после запроса выйдет таблица
1 | программист | 4
2 | администратор | 6
Заранее спасибо за ответ!!
Ответы (1 шт):
Для этого существуют групповые функции.
select
prof.id_prof,
prof.name,
count(*) cnt
from prof,
per
where per.id_prof = prof.id_prof
group by prof.id_prof, prof.name
Здесь много похожих вопросов-ответов и с примерами и с пояснениями.