✔️ 문제
MoMA에 등록된 작가이지만 전시된 작품이 없는 작가들의 마지막 작품을 전시하는 기획전을 준비하려 합니다. MoMA에 등록되어있고, 현재 살아있지 않은 작가 중 MoMA에 등록된 작품이 없는 작가의 ID와 이름을 출력하는 쿼리를 작성해주세요. 쿼리 결과에는 아래 컬럼이 있어야 합니다.
✔️ LEVEL 3
📌 주요 요구사항
- 사망한 작가(death_year IS NOT NULL)만 조회
- MoMA에 등록된 작품이 없는 작가를 필터링
- 작가의 ID와 이름을 출력해야 한다.
SELECT A.artist_id , name
FROM (SELECT * FROM artists WHERE death_year IS NOT NULL) A LEFT JOIN artworks_artists
ON A.artist_id = artworks_artists.artist_id
WHERE artwork_id IS NULL
✍ 코드 해석
- artists 테이블에서 death_year IS NOT NULL 조건을 적용하여 사망한 작가만 필터링
- LEFT JOIN artworks_artists를 사용해 작가와 작품 정보를 연결
- WHERE artwork_id IS NULL 조건을 사용하여 MoMA에 등록된 작품이 없는 작가만 선택
📌 실행 결과
- 총 21명의 작가 ID와 작가 이름이 출력된다.
- 해당 작가들은 MoMA에 등록되어 있지만, 전시된 작품이 없는 작가들이다.
✅ 정리
MoMA에 등록된 사망한 작가 중 전시된 작품이 없는 작가의 ID와 이름을 조회하는 SQL 문
LEFT JOIN을 사용하여 작품이 없는 작가를 필터링하며,
작가 ID를 기준으로 그룹화하는 대신 직접 artwork_id의 NULL 여부를 확인하여 정확한 결과를 도출
'학습 > SQL' 카테고리의 다른 글
[solvesql] SQL 풀어보기 - 온라인 쇼핑몰의 월 별 매출액 집계 (0) | 2025.03.03 |
---|---|
[solvesql] SQL 풀어보기 - 전국 카페 주소 데이터 정제하기 (문자열 처리 함수 - SUBSTRING, INSTR 사용) (2) | 2025.03.02 |
[solvesql] SQL 풀어보기 - 복수 국적 메달 수상한 선수 찾기 (0) | 2025.03.01 |
[solvesql] SQL 풀어보기 - 지역별 주문의 특징 (0) | 2025.03.01 |
[프로그래머스]SQL학습 - 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2025.02.27 |