【发布时间】:2016-07-10 00:35:47
【问题描述】:
我需要帮助才能获得独一无二的结果。这意味着如果记录已经存在,那么我根本不希望它显示在结果中。我正在使用 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
【问题讨论】:
-
SELECT MAX(s.course_id), c.name,MAX( s.year) FROM section as s, course as c WHERE s.course_id = c.course_id GROUP BY c.name HAVING COUNT(DISTINCT c.name)=1 -
@Mihai 为什么要计算 DISTINCT? OP 不想要重复的条目。您的条件也将包括
English。请解释我是否弄错了问题..
标签: mysql database mysql-workbench