永发信息网

sql server2005连表查询问题

答案:4  悬赏:10  手机版
解决时间 2021-08-17 07:46
  • 提问者网友:鼻尖触碰
  • 2021-08-17 04:16

select StudentInfo.Id, StudentInfo.Sname,ClassInfo.Cname ,Score.Number as '成绩'

from StudentInfo
inner join ClassInfo on StudentInfo.Cid=ClassInfo.Id

inner join Score on Score.Uid=StudentInfo.Id

inner join Subject on Subject.Id=Score.Sid 
 where StudentInfo.Id=1

 

StudentInfo.Id是学员ID StudentInfo.Sname是学员名称 ClassInfo.Cname 是班级名称(是个外键表)Score.Number 改学员的成绩(包括了 语文,数学,外语,综合 等科目) , 总共有4个表 1,学员表,2,班级表,3成绩表,4,科目表(包括了 语文,数学,外语,综合)

 

 试用上面语句查询结果如图:

 

因为有4个科目就查询出了4条数据,

    请问:要怎么写 查询结果就只有一条数据,就包括了 ID,学员名称,班级名称,语文成绩,数学成绩,外语成绩,综合成绩? 就显示一条数据,该怎么写呢,请高手指教!

最佳答案
  • 五星知识达人网友:第幾種人
  • 2021-08-17 04:40

首先添加一个课程表Course:


假设:Id=1,Sname=语文;Id=2,Sname=数学;Id=3,Sname=外语;Id=4,Sname=综合;


select StudentInfo.Id, StudentInfo.Sname,ClassInfo.Cname ,


(select number from score where Sid=1) as 语文成绩,


(select number from score where Sid=2) as 数学成绩,


(select number from score where Sid=3) as 外语成绩,


(select number from score where Sid=4) as  综合成绩


from StudentInfo
inner join ClassInfo on StudentInfo.Cid=ClassInfo.Id


inner join Score on Score.Uid=StudentInfo.Id


inner join Subject on Subject.Id=Score.Sid 
 where StudentInfo.Id=1


全部回答
  • 1楼网友:往事埋风中
  • 2021-08-17 07:50

看这页随意的回答,你的问题和这个问是一样的

http://wenwen.soso.com/z/q2

  • 2楼网友:患得患失的劫
  • 2021-08-17 06:31
写一下 你的Score 表的 表结构
  • 3楼网友:荒野風
  • 2021-08-17 06:17

select top 1 StudentInfo.Id, StudentInfo.Sname,ClassInfo.Cname ,Score.Number as '成绩'

from StudentInfo
inner join ClassInfo on StudentInfo.Cid=ClassInfo.Id

inner join Score on Score.Uid=StudentInfo.Id

inner join Subject on Subject.Id=Score.Sid 
 where StudentInfo.Id=1

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯