Допустим, у меня есть две связанные таблицы: teacher
и Course
, означающие, что Учитель может преподавать на многих курсах, но один курс может иметь только Учителя за раз, поэтому я создаю эти две таблицы следующим образом:
create table teacher (
id INT NOT NULL UNIQUE,
name VARCHAR(50) NOT NULL,
lastname VARCHAR(50) NOT NULL
);
create table Course (
id INT NOT NULL UNIQUE,
name VARCHAR(50) NOT NULL,
teacher_id INT NOT NULL
);
Итак, что у меня есть, например, что-то вроде этого
| id | name | lastname |
-----------------------------
| 1 | teacher1 | lastname1 |
| 2 | teacher2 | lastname2 |
| id | name | teacher_id |
------------------------------
| 1 | course1 | 1 |
| 2 | course2 | 1 |
| 3 | course4 | 2 |
Пока все работает нормально, но по требованию мне нужно вернуть список учителей и сколько курсов преподаеткак:
| id | name | lastname | courses |
----------------------------------------
| 1 | teacher1 | lastname1 | 2 |
| 2 | teacher2 | lastname2 | 1 |
Я не могу найти решение, которое бы приспособилось к этому требованию.Я пробовал с HAVING
и GROUP BY
предложениями из MySql, но, похоже, это не работает так, как мне нужно.