请问一下
我现在想做三表查询,然后把查询结果绑定到页面的 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()+"'"????

解决方案 »

  1.   

    都不知道三表的关系,还有哦select Course.CourseName,DoStudent.LimitNumber,(select count(*) from CourseSelect where CourseSelect.CourseName=DoStudent.CourseName and Course.ClassName='"+ Session["ClassName"].ToString() + "' 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"].ToString() + "' and DoStudent.GradeName='"+Session["GradeName"].ToString()+"'"
      

  2.   

    三表的关系:
    课程表 主键 coursename
    选课表:主键 stuid gradename
    中间表:联合主键 classname gradename coursename
      

  3.   

    string str = "select Course.CourseName,DoStudent.LimitNumber,(select count(*) from CourseSelect where CourseSelect.CourseName=DoStudent.CourseName and CourseSelect.ClassName='"+this.Session["ClassName"]+"' and CourseSelect.GradeName='"+this.Session["GradeName"]+"')as RealNumber , Course.LimitSex from DoStudent right outer join  Course on DoStudent.CourseName=Course.CourseName where DoStudent.ClassName='" + Session["ClassName"] + "'and DoStudent.GradeName='" + Session["GradeName"] + "'";
    这段代码功能是实现,但不确定是不是对的
    因为害怕是凑巧得的正确答案,请高手指点
      

  4.   


    主外键最好都用ID  呵呵既然有中间表 为什么不join 呢?select * from  课程表 a inner join 中间表 b on a.coursename=b.coursename inner join 选课表 c on b.gradename = c.gradename
    --也可以在后面加个where stuid = xxx
      

  5.   

    你表中的字段,和你要得到的结果用文字描述一遍,我帮你写好SQL语句
      

  6.   

    你要做的是不是学生选课系统的后台表,你要统计的是不是每个学生选了多少课,然后一张表里面查询出来?--学生表
    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
      

  7.   

    关键我是要做统计string str = "select Course.CourseName,DoStudent.LimitNumber,(select count(*) from CourseSelect where CourseSelect.CourseName=DoStudent.CourseName and CourseSelect.ClassName='"+this.Session["ClassName"]+"' and CourseSelect.GradeName='"+this.Session["GradeName"]+"')as RealNumber , Course.LimitSex from DoStudent right outer join Course on DoStudent.CourseName=Course.CourseName where DoStudent.ClassName='" + Session["ClassName"] + "'and DoStudent.GradeName='" + Session["GradeName"] + "'";
    从课程表和中间表连接选择课程名称(属于课程表Course字段),限选性别(属于课程表Course字段),限选人数(属于中间表DoStudent字段),已选人数(从选课表CourseSelect中统计)