在MySQL中仅显示完全唯一的结果

时间:2016-03-22 21:55:11

标签: mysql database mysql-workbench

我需要帮助让结果完全独特。这意味着如果记录已经存在,那么我不希望它在结果中显示。我正在使用MySQL和MySQL Workbench。

给出表格

Course_id   Sec_id  Semester    Year
1234           1    Spring      2010
3456           2    Spring      2010
5678           1    Spring      2010
7890           1    Spring      2010
9012           1    Spring      2010

Course_id   Name
1234        English
3456        English
5678        Math
7890        Science
9012        Music

我尝试过以下解决方案,但结果显示英语,我想完全消除英语,因为它提供了两次。

SELECT 
    s.course_id, c.name, s.year
FROM
    section as s, course as c
WHERE
    s.course_id = c.course_id AND s.year = 2010 AND s.sec_id = 1

我从上述查询得到的结果。

Course_id   Name    Year
1234        English 2010
5678        Math    2010
7890        Science 2010
9012        Music   2010

我想要的结果

Course_id   Name    Year
5678        Math    2010
7890        Science 2010
9012        Music   2010

2 个答案:

答案 0 :(得分:0)

您只需要对结果进行分组,只选择包含1行的组:

SELECT 
    s.course_id, c.name, s.year
FROM
    section as s, course as c
GROUP BY
    c.name
HAVING 
    count(c.name) = 1
WHERE
    s.course_id = c.course_id AND s.year = 2010 AND s.sec_id = 1

答案 1 :(得分:0)

要获得非重复的课程ID,您可以使用以下查询:

Given I do this Bar Thing

使用上述查询作为派生表,您可以使用SELECT Course_id FROM course GROUP BY Course_id HAVING COUNT(*) = 1 操作过滤掉重复的课程:

INNER JOIN