我在做毕业设计,用Java+Sql server2005实现学生成绩管理系统。登录时分两种角色,一种是教师一种是学生。登录名是教师编号和学号,用户表里面的登录名都来自教师表里的教师编号和学生表里的学号,我想实现输入教师编号时进入教师界面,输入学号时进入学生界面,请问怎么实现?SQL语句该怎么写?

解决方案 »

  1.   

    1、确保学号与教师编码不能重复(如果是一张表里面,其实更好)
    2、你现在登录是采取2选1来确定是老是还是学生吧,如果这样,直接把所输入的信息去查2个表,哪个表有数据,就可以确定是什么人了,当然前提是第一点能做出来
    3、SQL还不如想想怎么用代码控制,要不合成一张人表来查询,SQL才好写
      

  2.   

    学号与教师编号没有重复,先前已把教师登录的做出来了  SQL语句如下:select tb_teacher.teaname,tb_teacher.manage from tb_user ,tb_teacher where tb_user.userid=tb_teacher.teaid  and tb_user.userid=? and tb_user.pass=?";
    String paras[]={uid,p};
      

  3.   

    tb_user 表加个标识,说明是员工还是教师,后台根据标识去写不同的SQL
      

  4.   


    这不是有 tb_user 表吗?这里面应该就有老师和学生的id和密码了吧。
    这样很好区分啊select case when a.teaid is not null then a.teaname when b.stuid is not null then b.stuname else '' end name,
    case when a.teaid is not null then a.manage when b.stuid is not null then b.manage else '' end manage,
    case when a.teaid is not null then 1 when b.stuid is not null then 2 else 0 end
    flag --标志:1 老师,2学生,0 没有查到
     from tb_user a
     left join tb_teacher b on a.userid=b.teaid //关联教师表
     left join tb_student c on a.userid=c.stuid //关联学生表
     where  a.userid=? and a.pass=?
      

  5.   


    正解!楼主可以去学习一下sql的一些查询删除的基本语句,不是很麻烦,就是有些要记,呵呵。
      

  6.   

    我想了下,如果不想改动表结构那就加个试图呗:create view v_user as --创建试图,需要哪些字段都查出来
    select a.userid userid,a.pass pass, case when a.teaid is not null then a.teaname when b.stuid is not null then b.stuname else '' end name,
    case when a.teaid is not null then a.manage when b.stuid is not null then b.manage else '' end manage,
    case when a.teaid is not null then 1 when b.stuid is not null then 2 else 0 end
    flag --标志:1 老师,2学生,0 没有查到
     from tb_user a
     left join tb_teacher b on a.userid=b.teaid --关联教师表
     left join tb_student c on a.userid=c.stuid --关联学生表
    最后程序里直接从试图查询: select name,manage,flag from v_user where userid = ? and pass= ?
    然后根据查询出来的flag 跳转就行了。
      

  7.   


    晕,别名写错了(那个case when 语句里的a.换成b. b.换成 c.),不再发了。如果需要自己改吧。
      

  8.   

    既然都在老师和同学都在一个表中,你就可以加个标识字段,然后根据你输入编号的人-他所对应的标识跳转到不同的页面,是老师的标识则进入老师的页面,否则进入学生页面
    select biaozhi from table_name where user_id = (你输入的编号)
      

  9.   

    这个可以在设置user这表的时候有个标识老师(1)和学生(2)的字段....再到登录的时候的 返回那个用户类。。再判断字段是1还是2
      

  10.   

    权限的话做个判断啊,要是教师的就把学生的隐藏,干嘛用SQL实现。。
      

  11.   

    这个跟sql语句的关系不大吧,你做个单选按钮啊,分两种角色,教师和学生根据这个按钮,判断是教师还是学生,然后进行相应处理不就得了。
    我用的是jsp还有struts2写了一个,不过数据库是mysql就是去年没事的时候写着玩的,你想要的话我可以传给你。
      

  12.   

    谢谢了,麻烦有时间发到我邮箱一下,可以么,我想学习下。邮箱:[email protected]