我需要帮助让结果完全独特。这意味着如果记录已经存在,那么我不希望它在结果中显示。我正在使用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
答案 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