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
展开
 我来答
Proc_SunQueen
2013-06-25 · TA获得超过427个赞
知道小有建树答主
回答量:172
采纳率:0%
帮助的人:237万
展开全部
你 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
);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a2c6087
2013-06-25 · 超过19用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:47.4万
展开全部
方法一:
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)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szhejinbo
2013-06-25
知道答主
回答量:34
采纳率:100%
帮助的人:14.9万
展开全部
两表连接 条件是score.cno=class.cno
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式