mysql - 寻找只教一个类的老师

标签 mysql sql

我想问我要在查询中添加什么来选择只教一门课的类(class)。我的 table 是:

Teacher                         Course
ID    Name                      Course_ID   Teacher_ID
1     George                    1           1
2     Sam                       2           2
3     Julie                     3           1

我想获取只教过一个类的老师ID。我有:

select teacher.id
from teacher, course
where teacher.id = course.teacher_id;

我正在考虑添加

having (count(course.teacher_id)) = 1

where count(t) = (select count(*) from course) and t = 0

但我收到“无效使用组错误”。如何更改它来修复我的查询?

最佳答案

你已经尝试过的差不多了,只需添加group by,并使用join而不是,来合并表格:

select teacher.id
from teacher
join course
on teacher.id = course.teacher_id
group by teacher.id
having (count(course.Course_ID)) = 1 -- note count(Course_ID), not count(teacher_id)

关于mysql - 寻找只教一个类的老师,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42501214/

相关文章:

php - 处理 PHP/CodeIgniter 表单中的附加信息表单字段并存储在 MySQL 中

mysql - 如何使用 Derby 数据库?

php - 从MySQL数据库中显示php中的所有表名

mysql - SQL 根据另一个表更新表

mysql - SQL 插入其他更新不起作用

SQL Server : How to get rows where the date is older than X years?

php - MySQL比较具有时差的日期

php - 如何将不同部分的用户统计信息存储在数据库(mysql)中?

mysql - 使用 NOT IN 语句的 PHP 选择查询

mysql - 如何更新 MySQL 中的级联?