SQL初学日记

11.29

做了半天整不出来 是German 和Germany 打错了

12.02

今天又被这道题困扰了很久

差在join和left join上

逻辑是选取game和goal表中,game.id = goal.matchid时,统计进球的次数

那么goal表里的就是进球的记录,一场比赛可以进球0次或者n次,但是如果是进球0次,goal里是没有记录的。

假设id1099的比赛是0:0,那么goal表里就没有进球记录,这场比赛的记录就没有筛选出来。

用left join的话, 筛选出来的是game表以及game和goal的交集记录,那么1099也会去和goal表对照,得到null的结果,team1,Team 2 =!teamid,得到0, 那么0:0的记录也有了

12.03

         题干理解错了,是JA参演的电影的主角,不是她主演的电影的主角 所以ORD=1加在外面

 ORDER BY 2 = ORDER BY second column

12.05

dept =1 or dept = 2

和dept = 1 or 2 是不一样的 

12.06

今天这个第十题做得我头晕眼花

综合了别人的代码终于整出来了

首先先找bus1途径的站点

接着找bus2途径的站点(两段代码是一样的)

然后找到他们的交集站

SELECT Distinct v1.num,v1.company, name,v2.num,v2.company
#需要求出的结果


#bus1途径的站点 没有再用前几道题给出答案的那种 
# stop join route on id=stop来查找name 用了select 精简很多

FROM 
(SELECT r1.num, r1.company, r2.stop FROM route r1 JOIN route r2 ON
  (r1.company=r2.company AND r1.num=r2.num)
WHERE r1.stop = (select id from stops where name ='Craiglockhart'))v1 

#bus2途径的站点 同上同理
JOIN 
(SELECT r1.num, r1.company,r2.stop FROM route r1 JOIN route r2 ON
  (r1.company=r2.company AND r1.num=r2.num)
WHERE r1.stop = (select id from stops where name ='Lochend'))v2

#bus1 bus2的中转站
ON v1.stop = v2.stop 

#中转站的名字
JOIN stops on stops.id = v1.stop

#没有这行不会显示正确的笑脸
order by v1.num,name,v2.num

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值