【SQL】sqlzoo练习题Self join
练习所用到的表
愛丁堡巴士
stops(id, name) 站(編號,名稱)
route(num,company,pos, stop) 路線(號碼,巴士公司名,方向,站)
1.數據庫中有多少個站stops。
select count(*) from stops
Submit SQLRestore default
2.找出車站 ‘Craiglockhart’ 的 id
select id from stops where name = ‘Craiglockhart’
Submit SQLRestore default
3.列出巴士公司’LRT’的’4’號巴士線的站編號id 和 站名name
select id ,name
from route r join stops s on r.stop=s.id
where num=‘4’ and company=‘LRT’
Submit SQLRestore default
4.以下查詢列出途經 London Road (149) 或 Craiglockhart (53)的巴士線號碼。注意有兩條路線會經過這兩個站兩次。 加入 HAVING 語句來限制只列出這兩條路線。
SELECT company, num, COUNT()
FROM route WHERE stop=149 OR stop=53
GROUP BY company, num
having count()=2