如何查找与两个或更多唯一列条目匹配的密钥?

时间:2017-01-31 23:16:36

标签: mysql

例如,如果我有一张桌子"教授"和一张表"成绩单"它存储已经教过的名称类。我想找到教过两门或更多不同课程的教授。我的代码返回教授两个或更多课程的教授,但不会检查它们是否是唯一的。 我应该添加什么来检查类是否是唯一的。

SELECT DISTINCT name, COUNT(*)
FROM professor AS prof
INNER JOIN transcript T
ON prof.pid = T.pid
GROUP BY name
HAVING COUNT(*) >=2;

1 个答案:

答案 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索引和成绩单记录的标识符(即) - 以确保它们是没有重复。