sql查询

董哥007 2015-06-17 10:49:33
学生表:S(sno,sname)
课程表:C(cno,cname,cteacher)
成绩表:G(gno,cno,sno,scores)

1.查询出没有被‘李明老师’所教的所有学生姓名。
2.查询出至少有2门课程不及格的所有学生姓名及其平均分。
...全文
97 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
果酱很好吃 2015-06-17
  • 打赏
  • 举报
回复

1、两种都试试
SELECT S.sname FROM S INNER JOIN G ON S.sno=G.sno INNER JOIN C ON C.cno=G.cno WHERE C.cteacher<>'李明老师';
SELECT S.sname FROM S,G WHERE S.sno=G.sno AND G.cno NOT IN(SELECT cno FROM C WHERE cteacher='李明老师');
2、
SELECT S.sname,G.sno,cno FROM G,S WHERE S.sno=G.sno AND scores<60 GROUP BY G.sno HAVING cno>1;
misaka去年夏天 2015-06-17
  • 打赏
  • 举报
回复
第二问这样写行不行?
select S.sname,avg(G.scores),sum(scores<60) as gk from S inner join G on S.sno=G.sno having gk>=2
misaka去年夏天 2015-06-17
  • 打赏
  • 举报
回复
这题太经典了,楼上解答得没错(⊙v⊙)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧