selectc.stuid,c.maxscoreasscore,b.coursename,b.statusfrom(selecta.stuid,max(b.score)asmaxscorefroma,bwherea.stuid=b.stuidgroupbya.stuid)c,bwherec.stuid=b.stuidandc.maxscore=b.score若还有问题,请hi我~。
- 情感问答
- 答案列表
sql组合查询:多表查询sql语句[朗读]
select主表a.billid,主表a.billdate,主表a.no,主表a.notes,明细表a.qty,明细表a.moneyfrom主表a,明细表awhere主表a.billid=明细表abillidunionselect主表b.billid,主表b.billdate,主表b.no,null,明细表b.qty,明细表b.moneyfrom主表b,明细表bwhere主表b.billid=明细表bbillid。
联合查询效率较高.以下例子来说明联合查询的好处t1表结构(用户名,密码)useridintusernamevarchar(20)passwordvarchar(20)1jackjackpwd2owenowenpwdt3表。
这个问题其实很简单,只是楼主想思路没有转过来.没必要在一个select里面再拼加条件那个麻烦,直接用union就搞定了.select*fromtable1where部门='技术部'unionselect*fromtable1where职位='秘书'因为你的条件其实是交错的,所以用union直接查找多条件结果集,并且可以过滤重复结果。
用unionallselectinterid,sum(mobile)asmobilefrom(selectinterid,count(mobile)asmobilefrommobile1groupbyinteridunionallselectinterid,count(mobile)asmobilefrommobile2groupbyinterid)agroupbyinteridorderbyinterid。