例如,如果我有一张桌子"教授"和一张表"成绩单"它存储已经教过的名称类。我想找到教过两门或更多不同课程的教授。我的代码返回教授两个或更多课程的教授,但不会检查它们是否是唯一的。 我应该添加什么来检查类是否是唯一的。
SELECT DISTINCT name, COUNT(*)
FROM professor AS prof
INNER JOIN transcript T
ON prof.pid = T.pid
GROUP BY name
HAVING COUNT(*) >=2;
答案 0 :(得分:0)
试试这个:
SELECT
name, class_count
FROM
professor prof
LEFT JOIN
(SELECT pid, count(*) as class_count FROM transcript GROUP BY pid) as T
ON
prof.pid=T.pid
WHERE
class_count >= 2
然而,这个查询需要成绩单表在 pid 上都有UNIQUE索引和成绩单记录的标识符(即类) - 以确保它们是没有重复。