복습 - 셀프 조인
Coddy SQL 여정의 기초 섹션에 포함된 레슨. 72개 중 47번째.
챌린지
어려움사용 가능한 테이블과 열:
friends:id,name,friend_id
friends 테이블의 각 person에 대해, 해당 person이 가진 모든 친구의 친구 연결을 찾으세요. 친구의 친구 연결은 person A가 person B와 친구이고, person B가 다시 person C와 친구인 경우에 발생합니다. 이러한 연결을 다음 세 개의 열로 나열하세요:
- friend1: 시작 person
- friend2: 해당 person의 직접적인 친구
- friend3: 해당 친구의 친구
규칙:
- friend3이 friend1과 동일한 person인 경우는 포함하지 마세요.
- 결과를 friend1의 name을 기준으로 내림차순 정렬하세요.
예시: Alice가 Bob과 친구이고 Bob이 Carol과 친구라면, Alice-Bob-Carol은 유효한 친구의 친구 연결입니다.
직접 해보기
-- 테이블을 자기 자신과 두 번 조인하여 한 행에 세 사람의 체인이 담기도록 함
SELECT ____ AS friend1, ____ AS friend2, ____ AS friend3
FROM friends f1
JOIN friends f2 ON ____
JOIN friends f3 ON ____
-- 시작한 사람으로 다시 돌아가는 체인을 제거함
WHERE ____
ORDER BY ____ DESC;기초의 모든 레슨
직접 연습해 보세요: SQL 플레이그라운드