问题描述
- sql高级查询语句 麻烦大家了
-
--28)查询选修了课程名为“数据库”的学生的学号和姓名。
select sname,sno
from course,student
where course.cno in(
select cno
from course
where cname='sql') and course.cname=student.sno
group by sname
having count(cname)='sql'显示错误 出不来
解决方案
解决方案二:
第六行中的 course.cname=student.sno 能相等吗?
解决方案三:
count(cname)='sql'这是什么?数量为'sql'?还有,把course和student两个关系贴出来吧。
解决方案四:
这个貌似不好解决啊,题主自己看看log吧
解决方案五:
count(cname)是统计了,结果是一个数字,不可能等于'sql'
解决方案六:
1、group by sname 结果是查不出sno的。
2、count(cname)的结果是哥数字,不可能为"sql"。
解决方案七:
select Sno,Sname
from Student
where Sno in
(select Sno
from SC
where Cno in
(select Cno
from Course
where Cname='sql'))
试试这个
解决方案八:
课程表:
Course(Cno,Cname, Ccredit(学分)),其中Cno为主键
学生选课表:
SC(Sno(学号),Cno(课程),Grade(成绩)),其中Sno,Cno的组合为主键 'sql'是他选的课程是sql
1.先选到sql课程的Cno。
2.在学生选课表中选择Cno出现在1中的记录,然后对Sno执行去重。
SELECT distinct Sno,Cno
FROM SC s
WHERE s.Cno IN(
SELECT c.Cno
FROM Course c
WHERE c.Cname='sql'
)
解决方案九:
count(cname)是统计了,结果是一个数字,不可能等于'sql'
解决方案十:
having count(cname)='sql'这句先去掉试试
时间: 2024-12-01 08:46:40