MySQL中对查询的结果集取交集如何实现_MySQL

WBOY
リリース: 2016-06-01 13:38:42
オリジナル
1322 人が閲覧しました

bitsCN.com


MySQL中对查询的结果集取交集如何实现

 

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

     

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

 

解决方案:

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

 

方案一、临时表:

String queryBasic= “select model from ” ;

StringBuilder queryString=new StringBuilder();

queryString.append(queryBasic);

For(int i=0;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

              queryString.append(“,”);

}

}

If(specialIds.length>1){

queryString.append(“ where a”);

queryString.append(1+ “”);

queryString.append(“. specialId”

if(i

                     queryString.append(“=”);

}

}

 

方案二、交集join

String queryBasic= “select model from ”;

StringBuilder queryString=new StringBuilder();

queryString.append(queryBasic);

For(int i=0;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

              queryString.append(“cross”);

}

}

If(specialIds.length>1){

For(int i=0;i

              queryString.append(“a”+i);

              queryString.append(“.specialId”);

              if(i

                     queryString.append(“=”);

}

}

}

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

 

bitsCN.com

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!