2011-09-20 120 views
-4
student_id course_id course_name 
--------------------------------------------- 
1   1000  'CS' 
2   1000  'CS' 
1   2000  'CHEM' 
2   3000  'ENG' 
3   1000  'CS' 
4   5000  'Bio' 

我试图返回使用一个简单的SQL语句需要一个过程, (student_id数据,COURSE_ID,课程名称),无子查询和JOIN。SQL:返回与简单的SQL语句

的结果应该是:


Student_ID Course_ID Course_name 
3   1000  'CS' 
4   5000  'Bio' 

预先感谢您! :)

+0

可以显示样品输出 –

+0

你应该有发布SQL声明。 – adatapost

回答

3

试试这个,按照您的要求,无需子查询或加入

select student_id, min(course_id), min(course_name) from student 
group by student_id 
having count(student_id) = 1 

这将返回谁只需要一个过程,学生的详细信息

+0

如果min()wad需要,每个选定字段的命中次数超过1次? – Independent

+0

@Jonas:不一定,您*必须*在SQL中对不依赖于属于'group by'子句的列的列或表达式使用聚合函数。 – Benoit