[转帖]MySQL中对查询的结果集取交集如何实现?_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2330 | 回复: 0   主题: [转帖]MySQL中对查询的结果集取交集如何实现?        下一篇 
wongz
注册用户
等级:新兵
经验:46
发帖:55
精华:0
注册:2011-8-6
状态:离线
发送短消息息给wongz 加好友    发送短消息息给wongz 发消息
发表于: IP:您无权察看 2014-11-26 14:42:32 | [全部帖] [楼主帖] 楼主

需求:通过入学批次、层次、课程名称、专业和统考科目 为教学课程与统考科目设定对应关系,可通过选多个专业对教学课程与统考课程进行对应。

问题:级联---入学批次影响层次,入学批次与层次影响专业、入学批次层次与专业影响课程名称。当选了多个专业时,课程名称下拉框如何显示多个专业共有的课程(如果不能保证课程共有,可能会添加一些专业没有的课程对应关系)呢。

解决方案:

为了从略,这里只写出入学批次层次与专业影响课程名称的级联,也就是通过入学批次层次与专业来查询课程名称,传值都用ID,查询参数设置省略了。

方案一、临时表:

String queryBasic= “select model from ” ;
StringBuilder queryString=new StringBuilder();
queryString.append(queryBasic);
For(int i=0;i<specialIds.length();i++){
      queryString.append(“(select model from TeachingPlan_CourseDetail model where model.grade=:grade and model.educationLevel and model.specialId=:specialId) a”);
      queryString.append(i+ “”);
      if(i<specialId.length()-1){
            queryString.append(“,”);
      }
}
If(specialIds.length>1){
queryString.append(“ where a”);
queryString.append(1+ “”);
queryString.append(“. specialId”
if(i<specialId.length()-1){
      queryString.append(“=”);
}
}


方案二、交集join

String queryBasic= “select model from ”;
StringBuilder queryString=new StringBuilder();
queryString.append(queryBasic);
For(int i=0;i<specialIds.length();i++){
      queryString.append(“(select model from TeachingPlan_CourseDetail model where model.grade=:grade and model.educationLevel and model.specialId=:specialId) as a ”);
      queryString.append(i+ “”);
      if(i<specialId.length()-1){
            queryString.append(“cross”);
      }
}
If(specialIds.length>1){
For(int i=0;i<specialIds.length();i++){
      queryString.append(“a”+i);
      queryString.append(“.specialId”);
      if(i<specialId.length()-1){
            queryString.append(“=”);
      }
}
}


方案三、子查询与上面类似,略。

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论