본문 바로가기
공부/SQL

mysql > using

by shining park 2025. 4. 27.

❓실습문제를 푸는데 나와 강사님의 코드가 다른 부분 (USING) 이 있어 공부하고자 작성

쿼리의 중복을 제거하고 사용할 수 있으므로 사용 연습 필요

 

# 8. 급여등급테이블 sal_grade의 등급별 최대급여(MAX_SAL)보다 많이 받는 직원들의 사원명, 직급명, 급여, 연봉을 조회하시오.
#     (사원테이블과 급여등급테이블을 SAL_LEVEL컬럼기준으로 동등(등가) 조인할 것)

-- My Query
    select e.EMP_NAME, j.JOB_NAME, e.SALARY, e.SALARY * 12 as 연봉
    from employee e, job j, sal_grade s
    where e.JOB_CODE = j.JOB_CODE
    and e.SAL_LEVEL = s.SAL_LEVEL
    and e.SALARY > s.MAX_SAL;

-- Teacher's Query
    select
        emp_name,
        job_name,
        salary,
        (salary + salary * ifnull(bonus, 0)) * 12 annual_sal,
        max_sal
    from
        employee e
            join job j on(e.job_code = j.job_code)
            join sal_grade s using(sal_level)
    where
        e.salary > s.max_sal;

 

✅ 개념

USING(column_name)은 두 테이블에 동일한 이름의 컬럼이 있을 때 ON 대신 더 간단하게 조인 조건을 지정할 수 있는 문법

 

✅ 특징

  • 칼럼명이 같을 때만 사용 가능
  • USING을 사용하면 별칭을 붙이지 않아도 됨

✅ ON vs USING 비교

ON ON e.sal_level = s.sal_level
USING USING(sal_level) (컬럼명 같을 때만 가능)

 

⚠️ 주의점

  • USING 쓸 땐 해당 컬럼명 양쪽 테이블에 있어야 하고, 이름도 같아야 함
  • 컬럼 이름이 다르면 무조건 ON 사용해야 함