mysql 使用having 子句进行连接

标签 mysql join having

这些是表格:

mysql> select * from professor;
+-------+--------+--------+--------+------+
| empid | name   | status | salary | age  |
+-------+--------+--------+--------+------+
|     1 | Arun   |      1 |   2000 |   23 |
|     2 | Benoy  |      0 |   3000 |   25 |
|     3 | Chacko |      1 |   1000 |   36 |
|     4 | Divin  |      0 |   5000 |   32 |
|     5 | Edwin  |      1 |   2500 |   55 |
|     7 | George |      0 |   1500 |   46 |
+-------+--------+--------+--------+------+
6 rows in set (0.00 sec)

mysql> select * from works;
+----------+-------+---------+
| courseid | empid | classid |
+----------+-------+---------+
|        1 |     1 |      10 |
|        2 |     2 |       9 |
|        3 |     3 |       8 |
|        4 |     4 |      10 |
|        5 |     5 |       9 |
|        6 |     1 |       9 |
|        2 |     3 |      10 |
|        2 |     1 |       7 |
|        2 |     4 |       6 |
|        2 |     5 |       2 |
|        4 |     2 |       6 |
+----------+-------+---------+
11 rows in set (0.00 sec)

mysql> select * from course;
+----------+------------+--------+
| courseid | coursename | points |
+----------+------------+--------+
|        1 | Maths      |    100 |
|        2 | Science    |     80 |
|        3 | English    |     85 |
|        4 | Social     |     90 |
|        5 | Malayalam  |     99 |
|        6 | Arts       |     40 |
|        7 | Biology    |    100 |
+----------+------------+--------+
7 rows in set (0.00 sec)

问题是:

Return those courses that have been taught by at least 5 different employees

我的查询是:

select course.coursename from course
inner join works
on course.courseid=works.courseid
group by works.empid
having count(empid)>=5;

我应该将“科学”作为结果。但我得到 0 个结果。请帮忙。

最佳答案

试试这个

select course.coursename from course
inner join works
on course.courseid=works.courseid
group by course.coursename
having count(Distinct(works.empid))>=5;

关于mysql 使用having 子句进行连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21474651/

相关文章:

mysql - 从整个数据库中搜索列名的 Rails 方法

mysql - MySQL 触发器的多个 if 子句

php - 从 MySQL 数据库输出数组...如何在 PHP 中删除方括号和双引号?

php - 在 JOIN 语句中使用派生表

mysql - MySQL 是否消除了 SELECT 和 HAVING/GROUP BY 子句之间的公共(public)子表达式

php - 由于长时间的mysql查询,如何防止php脚本超时

sql - 从 SQL 表中删除重复行(基于多列中的值)

python - 如何加入数据框中共享相同名称的列

sql - SQL 中 WHERE 和 HAVING 的区别

mysql - 头脑 NumPy 的 SQL 疯狂