전공 · 모든 회사 / 데이터엔지니어

Q. 조인 관련 질문

유성윤

정보처리기사를 준비하면서 SQL JOIN을 공부하고 있습니다. INNER JOIN, LEFT JOIN, RIGHT JOIN을 각각 언제 사용하는지와 실무에서 자주 사용하는 사례를 예시와 함께 설명해 주실 수 있을까요?


2026.08.06

답변 4

  • B
    BbeeD현대모비스
    코대리 ∙ 채택률 80%

    채택된 답변

    안녕하세요, 백앤드쪽으로 가시면 이미 API로 사용하셔서 거의 안보시겠지만 데이터 엔지니어나 서버쪽을 희망하시면 아주 자주 씁니다. 가장 실무에서 많이 쓰는 순위는 Inner join > left join >>>>> full outer join (비교때 가끔..), right join(거의 안쓰고 left씁니다) 학습하고 계신다고 하니 SELECT ...FROM 이런 문법은 생략하고 , 아마 비헷갈리시는 부분이 비슷한 기능이라 그런 것 같은데 차이점 위주로 알려드리겠습니다. 1. Inner Join : id 조회, 부서 조회, 사원 조회, 신호 조회 등등,, 편리성을 위해 쉬운 사례로 고정해보겠습니다. 김민철, 구매= null 라고 예시를 들어볼게요.. Inner join에서 김민철씨는 안나와요. 이미 구매를 한 고객들만 나옵니다. 2. Left Join : 없는 것도 봐야할때 쓰입니다. left join 쓰면 김민철씨도 나옵니다. 아직 주문을 안했어도 보고싶을 때 씁니다. select ... left join 한 다음에(전체 고객 리스트) , WHERE o.order_id IS NULL (중 아직 구매 안한사람) 이런식으로 조건을 줄때 자주 쓰여요. 3. Right join : 거의 안씁니다... 고객명이 누락됬어도 구매한적이 있으면 자료가 뜨겠죠..하지만 대부분 레거시는 LEFT JOIN을 쓸 것을 권장합니다. A RIGHT JOIN B == B LEFT JOIN A니까요 4. Full outer join 주로 데이터를 비교하거나 마이그레이션을 할 때 사용합니다. 김민철 구매=바지 박상덕 구매 = 와이셔츠 NULL 구매 = 치마 이런식으로 그냥 전체 다 뽑는거에요. MySQL은 지원하지 않아서 UNION등으로 대처하구요 자격증 시험이시면 다 공부하시되 실무에서 사용이 궁금하신거면 inner join과 left join 정도만 알아두시면 됩니다. 도움되셨으면 좋겠네요.

    2026.08.07


  • P
    PRO액티브현대트랜시스
    코전무 ∙ 채택률 100%

    채택된 답변

    INNER JOIN LEFT JOIN RIGHT JOIN은 모두 두 개 이상의 테이블을 연결해서 데이터를 조회할 때 사용하는 기능입니다. 정보처리기사에서는 각 JOIN이 어떤 데이터를 반환하는지를 이해하는 것이 중요하며 실무에서는 조회 목적에 따라 적절한 JOIN을 선택하게 됩니다. INNER JOIN은 두 테이블에 공통으로 존재하는 데이터만 조회하는 방식입니다. 예를 들어 회원 테이블과 주문 테이블이 있을 때 주문을 한 회원만 조회하고 싶다면 INNER JOIN을 사용합니다. 주문을 하지 않은 회원은 결과에 포함되지 않습니다. 실무에서는 주문한 고객 목록 조회, 수강 신청한 학생 조회, 재직 중인 직원과 부서 정보를 함께 조회하는 경우처럼 두 테이블에 모두 존재하는 데이터만 필요한 상황에서 가장 많이 사용됩니다. LEFT JOIN은 왼쪽에 있는 테이블의 모든 데이터를 유지하면서 오른쪽 테이블에 일치하는 데이터가 있으면 함께 가져오고 없으면 빈값으로 표시합니다. 예를 들어 모든 회원을 조회하면서 주문 여부를 확인하고 싶다면 LEFT JOIN을 사용합니다. 주문을 하지 않은 회원도 결과에 포함되며 주문 정보만 비어 있게 됩니다. 실무에서는 전체 고객 목록과 구매 이력 조회, 전체 직원과 교육 이수 여부 조회, 전체 상품과 판매 이력 조회처럼 기준이 되는 데이터를 모두 확인해야 하는 업무에서 자주 사용됩니다. RIGHT JOIN은 LEFT JOIN과 반대로 오른쪽 테이블의 모든 데이터를 유지하는 방식입니다. 예를 들어 주문 정보를 기준으로 모든 주문을 조회하면서 회원 정보를 함께 가져오는 경우 사용할 수 있습니다. 하지만 실무에서는 RIGHT JOIN을 사용하는 경우가 많지 않습니다. 대부분 테이블의 위치를 바꾸어 LEFT JOIN으로 작성하는 경우가 많기 때문입니다. 실무에서의 사용 빈도를 보면 INNER JOIN이 가장 많이 사용되고 그다음이 LEFT JOIN입니다. RIGHT JOIN은 특별한 경우를 제외하면 거의 사용되지 않습니다. 따라서 정보처리기사 시험을 준비할 때도 INNER JOIN과 LEFT JOIN의 차이를 정확히 이해하는 것이 중요합니다. 쉽게 기억하는 방법은 INNER JOIN은 공통 데이터만 조회하는 방식이고 LEFT JOIN은 왼쪽 테이블의 데이터를 모두 유지하는 방식이며 RIGHT JOIN은 오른쪽 테이블의 데이터를 모두 유지하는 방식이라고 생각하면 됩니다. 특히 주문하지 않은 고객 찾기나 교육을 받지 않은 직원 찾기처럼 기준 테이블은 모두 조회하면서 연결된 데이터가 없는 경우를 확인해야 하는 문제에서는 LEFT JOIN이 가장 많이 활용됩니다.

    2026.08.07


  • 다할수있습니다큐비앤맘
    코이사 ∙ 채택률 58%

    채택된 답변

    조금이라도 도움이 되셨다면 채택 부탁드립니다. ~~~~ INNER JOIN은 두 테이블에 공통으로 존재하는 데이터만 필요할 때 사용합니다. 예를 들어 주문 테이블과 고객 테이블에서 실제 주문한 고객 정보만 조회할 때 적합합니다. LEFT JOIN은 왼쪽 테이블의 데이터를 모두 유지하면서 오른쪽 테이블의 정보를 붙일 때 사용합니다. 전체 고객을 조회하면서 주문 여부까지 확인하는 경우가 대표적이며 실무에서도 자주 사용됩니다. RIGHT JOIN은 반대로 오른쪽 테이블을 기준으로 모든 데이터를 유지합니다. 다만 같은 결과를 LEFT JOIN으로 표현할 수 있어 실무에서는 상대적으로 사용 빈도가 낮은 편입니다. 시험 준비에서는 어떤 테이블의 데이터를 반드시 남겨야 하는지를 먼저 판단하면 JOIN 유형을 쉽게 선택할 수 있습니다.

    2026.08.07


  • 취뽀도우미입니다대구교통공사
    코부장 ∙ 채택률 89%

    채택된 답변

    정보처리기사 실기 시험과 실무에서 가장 빈출되는 개념 중 하나가 바로 SQL JOIN입니다. INNER JOIN은 두 테이블에 공통으로 존재하는 데이터만 조회할 때 사용합니다. 예를 들어 주문 테이블과 고객 테이블이 있을 때, 실제로 주문을 완료한 고객의 정보와 주문 내역만 함께 보고 싶다면 INNER JOIN을 적용합니다. 양쪽 모두에 데이터가 확실히 존재하는 경우에 적합합니다. 반면 LEFT JOIN은 왼쪽 테이블의 모든 데이터와 오른쪽 테이블에서 일치하는 데이터를 함께 조회하며, 일치하는 데이터가 없더라도 왼쪽 데이터는 누락되지 않고 모두 출력됩니다. 실무에서는 회원 목록을 기준으로 조회하면서 최근 로그인 일시나 최근 주문 내역을 함께 확인할 때 유용하게 쓰입니다. 이때 주문 내역이 없는 회원이더라도 회원 정보 자체는 결과에 포함되어야 하므로 LEFT JOIN이 필수적입니다. RIGHT JOIN은 이와 반대로 오른쪽 테이블을 기준으로 전체 데이터를 가져오는 방식입니다. 오른쪽 테이블의 모든 항목을 보존해야 할 때 사용하지만, 실무에서는 쿼리의 가독성을 높이고 직관적인 데이터 흐름을 유지하기 위해 오른쪽 테이블을 왼쪽으로 위치시켜 대부분 LEFT JOIN으로 대체해 구현하는 편입니다. 따라서 기준이 되는 주된 테이블을 왼쪽에 두고 상황에 맞는 JOIN 방식을 선택하는 연습을 해두시면 자격증 시험뿐만 아니라 현업에서도 SQL을 작성할 때 큰 도움이 될 것입니다.

    2026.08.07


함께 읽은 질문

궁금증이 남았나요?
빠르게 질문하세요.