FULL OUTER JOIN 연습문제

송용진·2024년 3월 24일

문제 1: 배우와 출연 영화
actor 테이블과 film_actor 테이블을 FULL OUTER JOIN을 사용하여 연결하고, actor_id, first_name, last_name, film_id를 선택하세요.
일부 배우는 아직 영화에 출연하지 않았을 수 있으며,
일부 영화는 배우 정보가 등록되지 않았을 수 있습니다.

select actor_id, first_name, last_name, film_id
from actor full outer join film_actor using (actor_id);
--답안
SELECT a.actor_id, a.first_name, a.last_name, fa.film_id
FROM actor a
FULL OUTER JOIN film_actor fa ON a.actor_id = fa.actor_id;

결과가 같음
문제 2: 영화와 재고
film 테이블과 inventory 테이블을 FULL OUTER JOIN을 사용하여 연결하고, film_id, title, inventory_id, store_id를 선택하세요.
일부 영화는 아직 재고에 없을 수 있으며,
일부 재고 항목은 더 이상 영화 목록에 없을 수 있습니다.

SELECT film_id, title, inventory_id, store_id
FROM film f
FULL OUTER JOIN inventory i using (film_id);
--답안
SELECT f.film_id, f.title, i.inventory_id, i.store_id
FROM film f
FULL OUTER JOIN inventory i ON f.film_id = i.film_id;

문제 3: 고객과 대여 정보
customer 테이블과 rental 테이블을 FULL OUTER JOIN을 사용하여 연결하고, customer_id, first_name, last_name, rental_id, rental_date를 선택
일부 고객은 대여 기록이 없을 수 있고, 일부 대여 기록은 고객 정보가 누락되었을 수 있습니다.

select c.customer_id, c.first_name, c.last_name, r.rental_id, r.rental_date
from customer c 
full outer join rental r using (customer_id);
--답안
SELECT c.customer_id, c.first_name, c.last_name, r.rental_id, r.rental_date
FROM customer c
FULL OUTER JOIN rental r ON c.customer_id = r.customer_id;

문제 4: 영화와 언어
film 테이블과 language 테이블을 FULL OUTER JOIN을 사용하여 연결하고, film_id, title, language_id, name을 선택하세요.
일부 영화는 언어가 지정되지 않았을 수 있고,
일부 언어는 사용된 영화가 없을 수 있습니다.

SELECT f.film_id, f.title, l.language_id, l.name
FROM film f
FULL OUTER JOIN "language" l  using (language_id);
--답안
SELECT f.film_id, f.title, l.language_id, l.name
FROM film f
FULL OUTER JOIN language l ON f.language_id = l.language_id;

문제 5: 직원과 대여
staff 테이블과 rental 테이블을 FULL OUTER JOIN을 사용하여 연결하고, staff_id, first_name, last_name, rental_id, rental_date를 선택하세요. 일부 직원은 대여 기록이 없을 수 있고,
일부 대여 기록은 특정 직원에게 할당되지 않았을 수 있습니다.

SELECT s.staff_id, s.first_name, s.last_name, r.rental_id, r.rental_date
FROM staff s
FULL OUTER JOIN rental r using (staff_id) ;
--답안
SELECT s.staff_id, s.first_name, s.last_name, r.rental_id, r.rental_date
FROM staff s
FULL OUTER JOIN rental r ON s.staff_id = r.staff_id order by r.rental_id;
--답안
profile
개발자

0개의 댓글