SQL数据库编程问题
题目是求2011001和2011003共有的cno,我这样写的selectcnoas课程名fromscorewheresno=2011001intersectselect...
题目是求2011001和2011003共有的cno,我这样写的
select cno as 课程名
from score
where sno=2011001
intersect
select cno
from score
where sno=2011003
这是score表
这是class的表
运行代码后的结果,问题就是怎么改程序让结果中的0306和class表连接,显示成'计算机网路‘而不是0306 展开
select cno as 课程名
from score
where sno=2011001
intersect
select cno
from score
where sno=2011003
这是score表
这是class的表
运行代码后的结果,问题就是怎么改程序让结果中的0306和class表连接,显示成'计算机网路‘而不是0306 展开
4个回答
展开全部
你 select后面跟的列都是cno,当然显示的就是cno咯,用CNO对应cname就可以得到名字了
select cname as '课程名' from class
where cno=(select cno from score
where sno=2011001
intersect
select cno from score
where sno=2011003
);
select cname as '课程名' from class
where cno=(select cno from score
where sno=2011001
intersect
select cno from score
where sno=2011003
);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法一:
select c.cname as 课程名
from score s
left join class c on c.cno = s.cno
where s.sno = 2011001
intersect
select c.cname as 课程名
from score s
left join class c on c.cno = s.cno
where s.sno = 2011003
方法二:
select cname as 课程名
from class
where cno in (select cno
from score
where sno=2011001
intersect
select cno
from score
where sno=2011003)
两种方法不知道他们的性能是怎么样的,个人觉得第一种方法在数据量多的时候会比较快。对这个研究不是很深。
select c.cname as 课程名
from score s
left join class c on c.cno = s.cno
where s.sno = 2011001
intersect
select c.cname as 课程名
from score s
left join class c on c.cno = s.cno
where s.sno = 2011003
方法二:
select cname as 课程名
from class
where cno in (select cno
from score
where sno=2011001
intersect
select cno
from score
where sno=2011003)
两种方法不知道他们的性能是怎么样的,个人觉得第一种方法在数据量多的时候会比较快。对这个研究不是很深。
追问
方法二还是容易理解些哈。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-25
展开全部
SELECT
main.cno AS 课程号,
class.cname AS 课程名
FROM
(
select cno
from score
where sno=2011001
intersect
select cno
from score
where sno=2011003
) main JOIN class ON (main.cno = class.cno)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两表连接 条件是score.cno=class.cno
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询