请问一下
我现在想做三表查询,然后把查询结果绑定到页面的 gridview 中去,现在比较头疼的是三表查询中设计到统计,不太会写,请教一下
这样写不知道行不行
select Course.CourseName,DoStudent.LimitNumber,(select count(*) from CourseSelect where CourseSelect.CourseName=DoStudent.CourseName and Course.ClassName='"+ Session["ClassName"] + "' and CourseSelect.GradeName='"+Session["GradeName"].ToString())as RealNumber,Course.LimitSex from course left outer join DoStudent on Course.CourseName=DoStudent.CourseName where DoStudent.ClassName='" + Session["ClassName"] + "' and DoStudent.GradeName='"+Session["GradeName"].ToString()+"'"????
我现在想做三表查询,然后把查询结果绑定到页面的 gridview 中去,现在比较头疼的是三表查询中设计到统计,不太会写,请教一下
这样写不知道行不行
select Course.CourseName,DoStudent.LimitNumber,(select count(*) from CourseSelect where CourseSelect.CourseName=DoStudent.CourseName and Course.ClassName='"+ Session["ClassName"] + "' and CourseSelect.GradeName='"+Session["GradeName"].ToString())as RealNumber,Course.LimitSex from course left outer join DoStudent on Course.CourseName=DoStudent.CourseName where DoStudent.ClassName='" + Session["ClassName"] + "' and DoStudent.GradeName='"+Session["GradeName"].ToString()+"'"????
课程表 主键 coursename
选课表:主键 stuid gradename
中间表:联合主键 classname gradename coursename
这段代码功能是实现,但不确定是不是对的
因为害怕是凑巧得的正确答案,请高手指点
主外键最好都用ID 呵呵既然有中间表 为什么不join 呢?select * from 课程表 a inner join 中间表 b on a.coursename=b.coursename inner join 选课表 c on b.gradename = c.gradename
--也可以在后面加个where stuid = xxx
create table stu
(
sid int;
sname varchar(20);
)
--课程表
create table cou
(
cid int;
cname varchar(20);
)
--学生课程关系表
create table stu_cou
(
sid int;
cid int;
)
--以下查询结果是每个学生选了几门课
select s.*,sc.cnt from stu s
left join (select sid,count(1) cnt from stu_cou group by sid) sc on sc.sid=stu.sid
从课程表和中间表连接选择课程名称(属于课程表Course字段),限选性别(属于课程表Course字段),限选人数(属于中间表DoStudent字段),已选人数(从选课表CourseSelect中统计)