程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL中對查詢的結果集取交集如何實現

MySQL中對查詢的結果集取交集如何實現

編輯:MySQL綜合教程


MySQL中對查詢的結果集取交集如何實現   需求:通過入學批次、層次、課程名稱、專業和統考科目 為教學課程與統考科目設定對應關系,可通過選多個專業對教學課程與統考課程進行對應。    www.2cto.com   問題:級聯---入學批次影響層次,入學批次與層次影響專業、入學批次層次與專業影響課程名稱。當選了多個專業時,課程名稱下拉框如何顯示多個專業共有的課程(如果不能保證課程共有,可能會添加一些專業沒有的課程對應關系)呢。   解決方案: 為了從略,這裡只寫出入學批次層次與專業影響課程名稱的級聯,也就是通過入學批次層次與專業來查詢課程名稱,傳值都用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(“=”); } } } 方案三、子查詢與上面類似,略。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved