qcc 7회차
1번문제
SELECT p.page_id
FROM pages p
LEFT JOIN page_likes pl
ON pl.page_id = p.page_id
WHERE pl.page_id IS NULL
ORDER BY page_id;
1. pages 테이블과 page_likes 테이블의 LEFT JOIN
• pages 테이블(p)의 모든 레코드와 page_likes 테이블(pl)을 조인합니다.
• LEFT JOIN은 pages 테이블의 모든 행을 유지하면서, page_likes 테이블에서 일치하는 값이 없는 경우 NULL을 반환합니다.
2. 조건: WHERE pl.page_id IS NULL
• 조인 후 page_likes 테이블에 일치하는 page_id가 없는 pages 테이블의 행만 선택합니다.
• 즉, page_likes 테이블에 좋아요가 없는 페이지를 선택하는 것입니다.
3. ORDER BY page_id
• 최종 결과를 page_id 기준으로 정렬합니다.
전체 쿼리의 의미
• pages 테이블에 존재하지만, page_likes 테이블에는 없는 page_id 값을 반환합니다.
• 다시 말해, ‘좋아요’를 받은 적이 없는 페이지의 ID 목록을 정렬하여 가져옵니다.
활용 예시
• pages 테이블이 웹사이트의 모든 페이지를 나타내고, page_likes 테이블이 각 페이지의 ‘좋아요’를 기록한다고 가정하면, 이 쿼리는 ‘아직 좋아요가 없는 페이지’를 찾는 데 유용합니다.