首页 文章

没有子查询和连接的SQL查询

提问于
浏览
-1

让学生(student_id,course_id,course_name)只使用一门课程,使用一个没有子查询且根本没有连接的简单SQL语句

student_id  course_id   course_name
---------------------------------------------
1       1000        'CS 101'
2       1000        'CS 101'
1       2000        'CHEM 200'
2       3000        'ENG 211'
3       1000        'CS 101'
4       5000        'Bio 400'

有人请我这个 . 试过很多方法,但没有子查询就无法得到答案 .

3 回答

  • 1

    只需一门课程即可为学生检索STUDENT_ID:

    SQL>  SELECT student_id
      2   FROM students 
      3   GROUP BY student_id
      4   HAVING COUNT(course_id) = 1 
      5   /
    
    
    STUDENT_ID
    ----------
             4
             3
    
    Elapsed: 00:00:00.09
    SQL>
    

    但是为了获得其他信息,例如课程名称,我们需要使用子查询或连接 .

  • -2

    使用 group byhaving

    select student_id,count(course_id) as num 
    from students group by student_id
    having num =1
    

    或这个 :-

    select student_id
    from students group by student_id
    having count(course_id) =1
    
  • 1

    如何使用 GROUP BYHAVING COUNT

    SELECT student_id, course_name FROM students 
    GROUP BY student_id, course_name
    HAVING COUNT(course_id) = 1
    

相关问题