@Alexbangbang

Сколько раз внешний ключ используется в другой таблице?

Предположим, что есть 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
Заранее спасибо за ответ!!
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
@galaxy
JOIN + GROUP BY

SELECT prof.id_prof, prof.name, COUNT(id_per)
  FROM per
  JOIN prof ON (per.id_prof = prof.id_prof)
 GROUP BY 1, 2;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы