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