inblog logo
|
miniiya
    코딩테스트MySQL프로그래머스

    [프로그래머스/MySQL] 조건에 맞는 개발자 찾기(개념 및 정답)

    DISTINCT, JOIN 종류
    Seo Jimin's avatar
    Seo Jimin
    Mar 17, 2026
    [프로그래머스/MySQL] 조건에 맞는 개발자 찾기(개념 및 정답)
    Contents
    문제 링크개념DISTINCTJOIN 종류제출 답안

    문제 링크

    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/276034

    개념

    DISTINCT

    조회할 때 중복을 제거 하고 싶을 때 사용하면 된다.
    SELECT DISTINCT col1, col2, ... FROM table;

    JOIN 종류

    JOIN의 종류는 여러가지가 있는데 상황에 따라 적합한 JOIN의 종류가 다르기 때문에 다 알아두는 것이 좋다.

    (INNER) JOIN

    두 테이블의 교집합, ON절의 조건이 일치하는 결과를 출력한다.
    # 아래의 두 쿼리문은 같은 결과값을 출력한다. # 1 SELECT * FROM table1 t1 INNER JOIN table2 t2 ON t1.id = t2.id; # 2 SELECT * FROM table1 t1, table2 t2;

    LEFT/RIGHT OUTER JOIN

    특정 테이블을 기준으로 조합하는 JOIN이다.
    예시를 하나 들자면 게시물에 달린 댓글을 조회할 때도 이를 사용한다. 댓글이 달린 게시물도 있고 댓글이 하나도 안 달린 게시물도 있기 때문에 기준을 게시물 테이블로 하여 댓글 테이블을 LEFT/RIGHT OUTER JOIN 해야 한다.
    # LEFT, RIGHT 어떤걸 사용하던 기준만 똑같다면 같은 결과 집합이 나온다. # 컬럼 순서는 달라지지만 내용은 같다. # 1 SELECT * FROM board b LEFT JOIN reply r ON b.id = r.boardId; # 2 SELECT * FROM reply r RIGHT JOIN board b ON b.id = r.boardId;

    UNION

    두 테이블의 합집합, 여러 SELECT문의 결과를 하나의 결과 집합으로 표현할 때 사용한다.
    ⚠️
    각각의 SELECT문으로 선택된 필드의 개수와 타입, 순서가 모두 같아야 한다.
    → 컬럼 위치를 기준으로 하여 합쳐지기 때문이다.
    SELECT id, name FROM students UNION SELECT id, name FROM teachers;
    💡
    기본으로 DISTINCT가 적용되어 있다.

    UNION ALL

    UNION에서 중복되는 행까지 모두 출력하고 싶다면(=UNION에서 DISTINCT를 제거하고 싶다면) ALL을 붙이면 된다.
    💡
    UNION / UNION ALL 실행순서
    1. SELECT 1 실행
    1. SELECT 2 실행
    1. 결과 합치기
    1. UNION일 경우 DISTINCT 수행

    SELF JOIN

    같은 테이블을 두 번 사용할 때 사용한다.
    # EX1 SELECT * FROM employees e JOIN employees m # EX2 SELECT * FROM employees e LEFT JOIN employees m

    제출 답안

    SELECT DISTINCT D.ID, D.EMAIL, D.FIRST_NAME, D.LAST_NAME FROM DEVELOPERS D JOIN SKILLCODES S ON (D.SKILL_CODE & S.CODE) = S.CODE WHERE S.NAME IN ('Python', 'C#') ORDER BY D.ID;
     
     
    참고 자료
    https://inpa.tistory.com/entry/MYSQL-📚-JOIN-조인-그림으로-알기쉽게-정리
     
    Share article
    Contents
    문제 링크개념DISTINCTJOIN 종류제출 답안

    miniiya

    RSS·Powered by Inblog