테이블
Movie
tid | title | description | actor_id |
---|
1 | 아이언맨 | 아이언맨이... | 1 |
2 | 인셉션 | 코브가... | 2 |
3 | 어벤져스 | 어벤져스가... | 1 |
4 | 블랙 위도우 | 블랙 위도우가... | NULL |
Actor
aid | name | gender | profile_id |
---|
1 | 로버트 다우니 주니어 | Male | 1 |
2 | 레오나르도 디카프리오 | Male | 2 |
3 | 엠마 왓슨 | Female | 3 |
Profile
pid | name | description |
---|
1 | 로버트 다우니 주니어 | 로다주는... |
2 | 레오나르도 디카프리오 | 레오는... |
3 | 엠마 왓슨 | 엠마 왓슨은... |
LEFT OUTER JOIN 예제
실행 결과
tid | title | description | actor_id |
---|
1 | 아이언맨 | 아이언맨이... | 1 |
2 | 스파이더맨 | 스파이더맨이... | 2 |
3 | 토르 | 토르가... | 1 |
4 | 블랙 위도우 | 블랙 위도우가... | NULL |
SELECT FROM movie;
실행 결과
tid | title | description | actor_id | aid | name | gender | profile_id |
---|
1 | 아이언맨 | 아이언맨이... | 1 | 1 | 로버트 다우니 주니어 | Male | 1 |
2 | 인셉션 | 코브가... | 2 | 2 | 레오나르도 디카프리오 | Male | 2 |
3 | 어벤져스 | 어벤져스가... | 1 | 1 | 로버트 다우니 주니어 | Male | 1 |
4 | 블랙 위도우 | 블랙 위도우가... | NULL | NULL | NULL | NULL | NULL |
SELECT * FROM movie LEFT JOIN actor ON movie.actor_id = actor.aid
실행 결과
tid | title | description | actor_id | aid | name | gender | profile_id | pid | name | description |
---|
1 | 아이언맨 | 아이언맨이... | 1 | 1 | 로버트 다우니 주니어 | Male | 1 | 1 | 로버트 다우니 주니어 | 로다주는... |
2 | 인셉션 | 코브가... | 2 | 2 | 레오나르도 디카프리오 | Male | 2 | 2 | 레오나르도 디카프리오 | 레오는... |
3 | 어벤져스 | 어벤져스가... | 1 | 1 | 로버트 다우니 주니어 | Male | 1 | 1 | 로버트 다우니 주니어 | 로다주는... |
4 | 블랙 위도우 | 블랙 위도우가... | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL |
SELECT * FROM movie LEFT JOIN actor ON movie.author_id = actor.aid LEFT JOIN profile ON actor.profile_id = profile.pid;
실행 결과
tid | title | actor_id | name | actor_description |
---|
1 | 아이언맨 | 1 | 로버트 다우니 주니어 | 로다주는... |
2 | 인셉션 | 2 | 레오나르도 디카프리오 | 레오는... |
3 | 어벤져스 | 1 | 로버트 다우니 주니어 | 로다주는... |
4 | 블랙 위도우 | NULL | NULL | NULL |
SELECT tid, movie.title, actor_id, actor.name, actor.description AS actor_description FROM movie LEFT JOIN actor ON movie.author_id = actor.aid LEFT JOIN profile ON actor.profile_id = profile.pid;
실행 결과
tid | title | actor_id | name | actor_description |
---|
1 | 아이언맨 | 1 | 로버트 다우니 주니어 | 로다주는... |
SELECT tid, movie.title, actor_id, actor.name, actor.description AS actor_description FROM movie LEFT JOIN actor ON movie.author_id = actor.aid LEFT JOIN profile ON actor.profile_id = profile.pid WHERE aid = 1;
INNER JOIN 예제
실행 결과
tid | title | description | actor_id | aid | name | gender | profile_id |
---|
1 | 아이언맨 | 아이언맨이... | 1 | 1 | 로버트 다우니 주니어 | Male | 1 |
2 | 인셉션 | 코브가... | 2 | 2 | 레오나르도 디카프리오 | Male | 2 |
3 | 어벤져스 | 어벤져스가... | 1 | 1 | 로버트 다우니 주니어 | Male | 1 |
SELECT * FROM movie INNER JOIN actor ON movie.actor_id = actor.aid
실행 결과
tid | title | description | actor_id | aid | name | gender | profile_id | pid | name | description |
---|
1 | 아이언맨 | 아이언맨이... | 1 | 1 | 로버트 다우니 주니어 | Male | 1 | 1 | 로버트 다우니 주니어 | 로다주는... |
2 | 인셉션 | 코브가... | 2 | 2 | 레오나르도 디카프리오 | Male | 2 | 2 | 레오나르도 디카프리오 | 레오는... |
3 | 어벤져스 | 어벤져스가... | 1 | 1 | 로버트 다우니 주니어 | Male | 1 | 1 | 로버트 다우니 주니어 | 로다주는... |
SELECT * FROM movie INNER JOIN actor ON movie.actor_id = actor.id INNER JOIN profile ON profile.pid = actor.profile_id
FULL OUTER JOIN 예제
실행 결과
tid | title | description | actor_id | aid | name | gender | profile_id |
---|
1 | 아이언맨 | 아이언맨이... | 1 | 1 | 로버트 다우니 주니어 | Male | 1 |
2 | 인셉션 | 코브가... | 2 | 2 | 레오나르도 디카프리오 | Male | 2 |
3 | 어벤져스 | 어벤져스가... | 1 | 1 | 로버트 다우니 주니어 | Male | 1 |
4 | 블랙 위도우 | 블랙 위도우가... | NULL | NULL | NULL | NULL | NULL |
NULL | NULL | NULL | NULL | 3 | 엠마 왓슨 | Female | 3 |
SELECT * FROM movie FULL OUTER JOIN actor ON movie.actor_id = actor.id
(SELECT * FROM movie LEFT JOIN actor ON movie.actor_id = actor.id) UNION (SELECT * FROM movie RIGHT JOIN actor ON movie.actor_id = actor.id)
EXCLUSIVE LEFT JOIN 예제
실행 결과
tid | title | description | actor_id | aid | name | gender | profile_id |
---|
4 | 블랙 위도우 | 블랙 위도우가... | NULL | NULL | NULL | NULL | NULL |
SELECT * FROM movie LEFT JOIN actor ON movie.actor_id = actor.aid WHERE actor.aid is NULL