📜 문제 설명
Museum of Modern Art Collection 데이터셋은 미국 뉴욕의 근현대 미술관인 MoMA의 작품과 작가 정보를 담고 있습니다. artists 테이블에는 MoMA에 등록된 작가들의 정보가 있고, artworks_artists 테이블에는 각 작품에 참여한 작가들의 정보가 들어있습니다. 하나의 작품에 여러 명의 작가가 참여할 수 있기 때문에, artworks_artists 테이블의 artwork_id 컬럼과 artist_id 컬럼은 N:M 관계입니다.
MoMA에 등록된 작가이지만 전시된 작품이 없는 작가들의 마지막 작품을 전시하는 기획전을 준비하려 합니다. MoMA에 등록되어있고, 현재 살아있지 않은 작가 중 MoMA에 등록된 작품이 없는 작가의 ID와 이름을 출력하는 쿼리를 작성해주세요. 쿼리 결과에는 아래 컬럼이 있어야 합니다.
- artist_id - 작가 ID
- name - 작가 이름
ARTIST 테이블
- integer | artist_id아티스트 ID
- string | name아티스트 이름
- string | nationality국적
- string | gender성별
- integer | birth_year출생연도
- integer | death_year
ARTWORKS_ARTIST 테이블
- integer | artwork_id작품 ID
- integer | artist_id아티스트 ID
❓ 문제
현재 살아있지 않은 작가 중 MoMA에 등록된 작품이 없는 작가의 ID와 이름을 출력하는 쿼리를 작성해주세요
🔗 문제 링크
https://solvesql.com/problems/artists-without-artworks/
💡 문제 풀이
ARTWORK_ARTISTS 테이블에서 작가의 id를 고유값으로 조회해서 서브쿼리로 만든다
그리고 ARTIST 테이블의 정보 중 해당 서브 쿼리에 아이디가 없는 값만 조회한다 (작품이 없는 작가 조회이므로)
사망연도가 비어있지 않은 작가라는 조건을 건다
SELECT
artist_id,
name
FROM
artists
WHERE
artist_id NOT IN (
SELECT DISTINCT
artist_id
FROM
artworks_artists
)
AND death_year IS NOT NULL
반응형
'✨APS (Algorithm Problem Solving) > SolveSQL' 카테고리의 다른 글
[solvesql] 지역별 주문의 특징 / SQLite (0) | 2022.12.12 |
---|---|
[solvesql] 점검이 필요한 자전거 찾기 / SQLite (0) | 2022.12.06 |
[solvesql] 배송 예정일 예측 성공과 실패 / SQLite (0) | 2022.12.06 |
[solvesql] 할부는 몇 개월로 해드릴까요 / SQLite (2) | 2022.11.25 |
[solvesql] 일별 블로그 방문자 수 집계 / SQLite (0) | 2022.11.25 |