问题描述
publicListfindobjectList(Stringsql){//Sessions=this.getHibernateTemplate().getSessionFactory().openSession();Sessions=this.getSession();Listlist=s.createSQLQuery(sql).list();releaseSession(s);returnlist;}selectdistinctcl.classesName,s.studentsNumber,s.studentsName,aa.scoresNo,an.answersscore,cd.count,kk.countfromusersurightjoinstudentssons.studentsUserId=u.usersIdrightjoinclassesclons.classesId=cl.classesIdleftjoincoursesconcl.coursesid=c.coursesidleftjoinacademicyearsaonc.academicyearsId=a.academicyearsIdleftjoin(selectsc.scoresNo,s.studentsIdstudentsIdfromstudentss,scoressc,scoreCatygoryssccwheresc.studentsId=s.studentsIdandsc.scoreCategorysId=scc.scoreCategorysIdandscc.scoreCategoryName='期末成绩')aaons.studentsId=aa.studentsIdleftjoin(selectcount(*)count,s.studentsIdstudentsIdfromattendancesa,studentss,usersuwherea.studentsId=s.studentsIdands.studentsUserId=u.usersIdanda.attendancesqk='旷课')kkons.studentsId=kk.studentsIdleftjoinanswersanonan.studentsId=s.studentsIdleftjoin(selectcount(*)count,s.studentsIdstudentsIdfromattendancesa,studentss,usersuwherea.studentsId=s.studentsIdands.studentsUserId=u.usersIdanda.attendancesqk='迟到')cdons.studentsId=cd.studentsIdwherea.usersId=2这是sql语句!不知道是不是sql出问题了,还是哪里出问题了
解决方案
解决方案二:
什么数据库什么环境那不一样啊。。。好长的sql
解决方案三:
真的很长很长啊。
解决方案四:
sql拼接的好多啊,有些都是重复的,对于那些相同的都可以提出来吗,用with不好吗
解决方案五:
让人痛苦的sql......
解决方案六:
好好检查下先去掉所有连接查询一个连接一个连接加上看到底哪里出了问题
解决方案七:
恩同意5楼一个一个的加,排查另,这样的SQL很不合理,竟然用到3个子查询,建议优化一下