如何选择选择了特定几门课程的,在一个班内的所有所有学生信息?
hql.append("select sno,sname,c.cname from cou c where sname in(select sname from student s where ");
hql.append("s.class='"+ss[0]+"') ");
if(cc.length>=1&&cc[0]!=null){
hql.append("and c.cname='"+cc[0]+"' ");
}
if(cc.length>=2&&cc[1]!=null){
hql.append("or c.cname='"+cc[1]+"' ");
}
if(cc.length==3&&cc[2]!=null){
hql.append("or c.cname='"+cc[2]+"'");
}
这样子找到的总是在一个班内的,没法选择其他班,这SQL语句哪里错了吗?
一个SQL语句问下,从学生表sc和课程表cou中选择。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Bug开发攻城狮 2016-11-03 01:53关注
后面的条件你写的有问题,如果是 and c.name=cc[0] or c.name=cc[1] or c.name=cc[2],那c.name=cc[0]不成立,后面的也不成立,所以你只能找到一个班内
应该是 and (c.name=cc[0] or c.name=cc[1] or c.name=cc[2])本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报