NeQrhk 2016-11-03 01:37 采纳率: 30.6%
浏览 922
已采纳

一个SQL语句问下,从学生表sc和课程表cou中选择。

如何选择选择了特定几门课程的,在一个班内的所有所有学生信息?
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语句哪里错了吗?

  • 写回答

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])

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突