프로그래밍/MySQL

[MySQL] SQL ZOO Self join Quiz 답 해설

모영이 2021. 3. 15. 11:33

 

Self join Quiz - SQLZOO

 

sqlzoo.net

1. Self JOIN 사용

Self JOIN이란 자기 자신을 결합 시키는 조인이다.

하지만 어려울 것 없다. 그냥 테이블이 하나 더 있다고 생각하고 그걸 결합하는 것이다.

자기 자신의 데이터가 필요할 수 있고, 그것을 JOIN해서 사용하는 것 뿐이다.

name이 Craiglockhart 인 stops의 route는 여러개 일 것이고, 그중 stop이 Haymarket인 데이터를 출력하면 된다.

2. 결합, 그런데 이제 JOIN을 안사용.

복잡해보이겠지만, FROM에 테이블을 여러개 집어넣고 WHERE문에서 조건을 거는 형식이다.

3. Self JOIN 두번 사용

a <- b

a <- stopa

b <- stopb

stopa가 Tollcross이면,

a는 Tollcross의 route 정보가 되고 (a는 stopa와 결합 되어 있음)

b는 그 route정보가 되고 (b는 a와 결합되어 있음)

stopb는 route정보 안에 들어 있는 stop에 대칭된다. (stopb는 b와 결합되어 있음)

결국 Tollcross이름을 가진 정류장을 거치는 버스의 모든 정류장들이 표시된다.