카테고리 없음

[TIL] 72일차

unoori 2025. 1. 24. 09:14

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 JOINpages 테이블의 모든 행을 유지하면서, 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 테이블이 각 페이지의 ‘좋아요’를 기록한다고 가정하면, 이 쿼리는 ‘아직 좋아요가 없는 페이지’를 찾는 데 유용합니다.