有段SQL的查询理解不了,那位帮忙解说下.谢谢!

来源:百度知道 编辑:UC知道 时间:2024/09/25 05:55:45
查询:计算出在同一天里开出了两艘不同船只的水手的等级增长。
SELECT S.sname,S.rating+1 AS rating
FROM Sailors S,Reserves R1,Reserves R2
WHERE S.sid=R1.sid AND S.sid=R2.sid AND R1.day=R2.day AND R1.bid<>R2.bid
S.rating+1 AS rating 这段还是没理解,能补充下不?谢谢!

R1.bid<>R2.bid 说明的是不同的船只(bid是船只编号)
R1.day=R2.day 为同一天
S.sid=R1.sid AND S.sid=R2.sid 表示都是同一个船员(sid为船员编号)

rating应该是原来的等级,在符合条件下的+1

在水手有一天开一条船的情况下不会查询出记录!
在水手有一天开两条船的情况下会查询出1条记录!
在水手有一天开三条船的情况下会查询出3条记录!
在水手有一天开四条船的情况下会查询出6条记录!
这个是一个组合的问题!

as 后就是别名了。报表中这样用的很多。
就是把你逻辑运算后的结果生成一列,不知道我说明白没。呵呵