전공 · 모든 회사 / 데이터엔지니어
Q. 조인 관련 질문
정보처리기사를 준비하면서 SQL JOIN을 공부하고 있습니다. INNER JOIN, LEFT JOIN, RIGHT JOIN을 각각 언제 사용하는지와 실무에서 자주 사용하는 사례를 예시와 함께 설명해 주실 수 있을까요?
2026.08.06
답변 4
- BBbeeD현대모비스코대리 ∙ 채택률 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 정도만 알아두시면 됩니다. 도움되셨으면 좋겠네요.
- PPRO액티브현대트랜시스코전무 ∙ 채택률 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이 가장 많이 활용됩니다.
- 다다할수있습니다큐비앤맘코이사 ∙ 채택률 58%
채택된 답변
조금이라도 도움이 되셨다면 채택 부탁드립니다. ~~~~ INNER JOIN은 두 테이블에 공통으로 존재하는 데이터만 필요할 때 사용합니다. 예를 들어 주문 테이블과 고객 테이블에서 실제 주문한 고객 정보만 조회할 때 적합합니다. LEFT JOIN은 왼쪽 테이블의 데이터를 모두 유지하면서 오른쪽 테이블의 정보를 붙일 때 사용합니다. 전체 고객을 조회하면서 주문 여부까지 확인하는 경우가 대표적이며 실무에서도 자주 사용됩니다. RIGHT JOIN은 반대로 오른쪽 테이블을 기준으로 모든 데이터를 유지합니다. 다만 같은 결과를 LEFT JOIN으로 표현할 수 있어 실무에서는 상대적으로 사용 빈도가 낮은 편입니다. 시험 준비에서는 어떤 테이블의 데이터를 반드시 남겨야 하는지를 먼저 판단하면 JOIN 유형을 쉽게 선택할 수 있습니다.
취뽀도우미입니다대구교통공사코부장 ∙ 채택률 89%채택된 답변
정보처리기사 실기 시험과 실무에서 가장 빈출되는 개념 중 하나가 바로 SQL JOIN입니다. INNER JOIN은 두 테이블에 공통으로 존재하는 데이터만 조회할 때 사용합니다. 예를 들어 주문 테이블과 고객 테이블이 있을 때, 실제로 주문을 완료한 고객의 정보와 주문 내역만 함께 보고 싶다면 INNER JOIN을 적용합니다. 양쪽 모두에 데이터가 확실히 존재하는 경우에 적합합니다. 반면 LEFT JOIN은 왼쪽 테이블의 모든 데이터와 오른쪽 테이블에서 일치하는 데이터를 함께 조회하며, 일치하는 데이터가 없더라도 왼쪽 데이터는 누락되지 않고 모두 출력됩니다. 실무에서는 회원 목록을 기준으로 조회하면서 최근 로그인 일시나 최근 주문 내역을 함께 확인할 때 유용하게 쓰입니다. 이때 주문 내역이 없는 회원이더라도 회원 정보 자체는 결과에 포함되어야 하므로 LEFT JOIN이 필수적입니다. RIGHT JOIN은 이와 반대로 오른쪽 테이블을 기준으로 전체 데이터를 가져오는 방식입니다. 오른쪽 테이블의 모든 항목을 보존해야 할 때 사용하지만, 실무에서는 쿼리의 가독성을 높이고 직관적인 데이터 흐름을 유지하기 위해 오른쪽 테이블을 왼쪽으로 위치시켜 대부분 LEFT JOIN으로 대체해 구현하는 편입니다. 따라서 기준이 되는 주된 테이블을 왼쪽에 두고 상황에 맞는 JOIN 방식을 선택하는 연습을 해두시면 자격증 시험뿐만 아니라 현업에서도 SQL을 작성할 때 큰 도움이 될 것입니다.
함께 읽은 질문
Q. 데이터 분석관련 취업고민입니다.
현재 수학과 3학년을 재학중인 학생입니다. 데이터 분석쪽으로 진로를 정하고싶어 고민중입니다. 현실적으로 수학과 3학점 학생이 포트폴리오(velog), 프로젝트, 자격증만으로 전공자들과 경쟁성이 있는지, 취업이 가능한건지 궁금합니다. 또한 ai활용쪽으로도 같이공부하면 좋다고들었는데 그 경우에는 석박사의 학위가 필요한건지, ai로인해 단순 프로그래밍 작업 및 여러 개발자들은 채용이 점점 줄어들고있다고 하는데 이쪽 분야는 어떤지 궁금합니다. 혼자 고민하고 찾아보다가 현직 전문가분들이 가장 잘 아실것같아 여쭤봅니다 ㅠㅠ
Q. SQL 심화과정 조인과 관련된 질문
★ 예제 문제 ★ 사원 테이블과 부서 테이블을 크로스 조인하여 '배재용' 사원에 대한 정보(이름, 사원 테이블의 부서번호, 부서 테이블의 부서번호, 부서명)를 보이세요. 1. ANSI SQL 조인 SELECT 부서.부서번호 ,부서명 ,이름 ,사원.부서번호 FROM 부서 CROSS JOIN 사원 WHERE 이름 = '배재용'; 2. Non–ANSI SQL 조인 SELECT 부서.부서번호 ,부서명 ,이름 ,사원.부서번호 FROM 부서 ,사원 WHERE 이름 = '배재용'; ANSI SQL 조인과 Non–ANSU SQL 조인을 써도 컬럼이 아무것도 안 나오는데 뭐가 문제인지 모르겠어요.
Q. 석사 졸업 후 데이터 엔지니어 취업 고민
현재 정보통신공학 전공으로 곧 4학년에 올라가는 학부생입니다. 졸업 후에는 석사로 빅데이터 대학원에 진학하여 분산처리 환경에서 그래프 데이터 관련 연구를 진행할 예정입니다. 궁금한 점이 몇 가지 있습니다. 1. 이런 연구 경험이 석사 졸업 후 데이터 엔지니어로 취업하는 데 도움이 될까요? 2. 채용 공고를 보면 대부분 경력 3년 이상을 요구하던데, 석사 졸업생으로서 어떤 커리어 방향을 잡는 게 좋을지 조언을 듣고 싶습니다. 3. 현재는 데이터 엔지니어링 부트캠프를 병행하고 있어 기본적인 테크닉은 익히는 중입니다. 향후 대기업이나 금융권으로 진출하려면 어떤 방식으로 준비를 해야 할지도 궁금합니다. 4. 또 현재는 sqlp 자격증은 준비하는게 좋은 선택인지 궁금합니다. 참고로 연구실에서는 산학 과제를 많이 수행하지만, 대부분은 모델 개발 중심이라 인프라 관련 경험은 상대적으로 적은 편입니다. 이런 부분을 보완하기 위한 조언도 함께 주시면 감사하겠습니다.
궁금증이 남았나요?
빠르게 질문하세요.