같은 테이블 두번 조인

dorongpark·2024년 6월 12일
0

해커랭크(sql)

목록 보기
8/20

테이블 설명:

: Students - id별 학생 이름
Friends - id별 학생의 절친
Packages - id별 학생의 급여 수준

output : 이름
로직: 학생의 이름을 넣으면 그 학생의 절친의 급여 수준이 이 학생보다 높으면 이 학생의 이름 추출


  1. 첫번째 생각
    " 테이블이 나눠져 있으니 조인하자"
    SELECT Name
    FROM Students st
    JOIN Friends fr on st.ID = fr.ID
    JOIN Packages p on p.ID = st.ID

  2. 두번째 생각
    " 로직을 반영하려면 급여 수준을 두번(학생, 학생의 절친) 확인해야 한다 → 같은 테이블 두번 조인"
    SELECT Name
    FROM Students st
    JOIN Friends fr on st.ID = fr.ID
    JOIN Packages p1 on p1.ID = st.ID
    JOIN Packages p2 on p2.ID = fr.Frined_ID -- 그냥 ID가 아니라 fr.ID로 엮음 **
    WHERE P1.Salary <P2.Salary ----
    조건값
    Order by p2.Salary


  • 위의 쿼리 실행시 반영될 데이터 모습

profile
야 너도 분석 할수 있어

0개의 댓글