Atsushi2022の日記

データエンジニアリングに関連する記事を投稿してます

SQL Zooを試してみた ~ Self Join

# 概要

 

10番目の問題がわからなかった。。。。

 

# 1.

 

```
SELECT count(1) "# of Stops"
FROM stops
```


# 2.

 

```
SELECT id
FROM stops
WHERE name = 'Craiglockhart'
```

# 3.

 

```
SELECT id, name
FROM stops
JOIN route ON stops.id = route.stop
WHERE num = '4' AND company = 'LRT'
```

# 5.

 

```
SELECT a.company, a.num, a.stop, b.stop
FROM route a JOIN route b ON
  (a.company=b.company AND a.num=b.num)
WHERE a.stop=53 AND b.stop=149
```


# 6.

 

```
SELECT a.company, a.num, stopa.name, stopb.name
FROM route a JOIN route b ON
  (a.company=b.company AND a.num=b.num)
  JOIN stops stopa ON (a.stop=stopa.id)
  JOIN stops stopb ON (b.stop=stopb.id)
WHERE stopa.name='Craiglockhart' AND stopb.name='London Road'
```

# 7.

 

```
SELECT DISTINCT a.company, a.num
FROM route a
JOIN route b ON a.num = b.num AND a.company = b.company
WHERE a.stop=115 AND b.stop=137
```

8.

 

```
SELECT a.company, a.num
FROM route a
JOIN route b ON a.num = b.num AND a.company = b.company
JOIN stops stopa ON a.stop = stopa.id
JOIN stops stopb ON b.stop = stopb.id
WHERE stopa.name = 'Craiglockhart' AND stopb.name = 'Tollcross'
```

# 9.

 

```
SELECT stopb.name, b.company, b.num
FROM route a
JOIN route b ON a.num = b.num AND a.company = b.company
JOIN stops stopa ON a.stop = stopa.id
JOIN stops stopb ON b.stop = stopb.id
WHERE stopa.name = 'Craiglockhart' 
```

 

# 10.

 

わからなかった。。。。