zoukankan      html  css  js  c++  java
  • 查出选修的课的数目至少在3门以上的学生

    首先需要的建立表数据如下:

    1. create table if not exists student  
    2. (  
    3.     SNO varchar(20) primary key,  
    4.     SNAME varchar(20) character set gbk,  
    5.     AGE int,  
    6.     SEX  char(2) character set gbk CHECK(SEX IN('男','女'))   
    7. );  
    8. insert into student values('1','李强',23,'男');  
    9. insert into student values('2','刘丽',22,'女');  
    10. insert into student values('5','张友',22,'男');  
    11.   
    12. create table if not exists course  
    13. (  
    14.     CNO varchar(20) primary key,  
    15.     CNAME varchar(20) character set gbk,  
    16.     TEACHER varchar(20) character set gbk  
    17. );  
    18. insert into course values('K1','C语言','王华');  
    19. insert into course values('K5','数据库原理','程军');  
    20. insert into course values('K8','编译原理','程军');  
    21.   
    22. create table if not exists sc  
    23. (  
    24.     SNO varchar(20) NOT NULL,  
    25.     CNO varchar(20) NOT NULL,  
    26.     SCORE int NOT NULL,  
    27.     primary key (SNO,CNO),  
    28.     foreign key (SNO) references student(SNO),  
    29.     foreign key (CNO) references course(CNO)  
    30. );  
    31. insert into sc values('1','K1',83);  
    32. insert into sc values('2','K1',85);  
    33. insert into sc values('5','K1',92);  
    34. insert into sc values('2','K5',90);  
    35. insert into sc values('5','K5',84);  
    36. insert into sc values('5','K8',80);  

    方案一:

     select * from (select s.sname,count(*) num from

        student s,sc sc1,course c where s.sno=sc1.sno and c.cno=sc1.cno group by s.sno) res where res.num>=3;

    方案一得思路就是把所有学生的信息全部通过内连接查询出来,并且分组,把该结果当做是一个res表,之后再从表里通过num查询出num>=3的学生

    方案二:

     select * from student s,sc sc1,course c where s.sno=sc1.sno and c.cno=sc1.cno and group by s.sno having count(*)>=3

    方案二的思路和上面差不多,但是更为简洁,直接having语句直接分组,由代码可以看得出,having count(*)>=3相当于方案一的把结果集封装为表,再通过表的字段判断

  • 相关阅读:
    由button标签在 IE 8.0 下的异常表现引发的一场血案
    【javascript】—— JS判断浏览器类型、操作系统
    【javascrpt】——图片预览和上传,兼容IE 9-
    YII安装smarty-view-renderer扩展
    Yii中用递归方法实现无限级分类
    Yii中Ajax的使用,如收藏功能
    Javascript and AJAX with Yii(在yii 中使用 javascript 和ajax)
    Yii框架zii.widgets.grid自定义按钮,ajax触发事件并提示
    yii 中设置提示成功信息,错误提示信息,警告信息
    Yii Framework 开发教程Zii组件-Tabs示例
  • 原文地址:https://www.cnblogs.com/Booker808-java/p/8264734.html
Copyright © 2011-2022 走看看