100分求解该sql语句的翻译

来源:百度知道 编辑:UC知道 时间:2024/05/10 14:42:56
这条语句太长,我理解不了。求大人能用中文把意思表达出来。
select r.* from room r inner join category cat on r.cid = cat.id
where cat.code=? and r.status=? and r.id not in(
select m.roomid from(
select sum(dtl.residetype) as cnt,dtl.rid as roomid,
rsd.residedate
from reisde rsd inner from subscription_dtl dtl
on rsd.dtlid=dtl.id
where rsd.residedate between :startDate and :endDate
group by dtl.rid, rsd.residedate
having cnt >=2) m);

*******************
补充:
我调整了一下你的sql文格式,加了一些注释。
因为下面显示不下,所以有点乱,你考出来到文件里面再看。
*******************

select r.* --查询room中所有字段
from room r inner join category cat on r.cid = cat.id --从room和category的内连接结果集中,并且这两个表被分别重命名为r和cat
where cat.code=? --category表的code=?
and r.status=? --room表的status=?
and r.id not in --room表的id不在下面的结果集中
(
select m.roomid --下面结果集的roomid(注意看下面的结果集被命名为了m)
from(
select sum(dtl.residetype) as cnt, --subscription_dtl的residetype字段和,并重命名为cnt
dtl.rid as roomid, --subscription_dtl的rid字段,并重命名为roomid
rsd.residedate --reisde的residedate字段
from reisde rsd inner from subscription_dtl dtl on rsd.dtlid=dtl.id --两个表的内连接结果
where rsd.residedate between :startDate and :endDate --reisde的residedate在:startDate和:endDate之间