SQL정리. 6 (USING)

2024. 7. 8. 15:29·SQL 정리

USING 키워드는 SQL에서 테이블을 조인할 때 공통된 컬럼을 기반으로 결합할 때 사용한다. INNER JOIN이나 LEFT JOIN 같은 조인과 함께 사용되며, 지정한 공통 컬럼으로 두 테이블을 결합한다.

 

USING은 공통된 컬럼을 명시적으로 지정하여 두 테이블을 조인한다. 이때 두 테이블에 동일한 이름의 컬럼이 있어야 한다.

 

구문

 

SELECT column_list
FROM table1
JOIN table2
USING (common_column);

 

특징

  • 단순화: 공통 컬럼을 지정하기 때문에 ON 조건을 반복해서 지정할 필요가 없다.
  • 공통 컬럼: USING에 지정된 컬럼은 두 테이블 모두에 존재해야 하고 이름이 동일해야 한다.
  • 결과: 결과에는 공통 컬럼이 한 번만 표시된다.

ex) 테이블

-- Customers 테이블
+-------------+--------------+
| customer_id | customer_name|
+-------------+--------------+
|          1  | Alice        |
|          2  | Bob          |
|          3  | Charlie      |
+-------------+--------------+

-- Orders 테이블
+-------------+-------------+--------+
| order_id    | customer_id | amount |
+-------------+-------------+--------+
|          101|           1 |  200   |
|          102|           2 |  150   |
|          103|           1 |  250   |
+-------------+-------------+--------+

 

 

ON을 사용하는 INNER JOIN:

 

SELECT 
    customer_name, 
    amount
FROM 
    Customers c
JOIN 
    Orders o
ON 
    c.customer_id = o.customer_id;

 

customer_id가 같은 레코드를 Customers와 Orders 테이블에서 결합하였다.

 

USING을 사용하는 INNER JOIN:

 

SELECT 
    customer_name, 
    amount
FROM 
    Customers
JOIN 
    Orders
USING (customer_id);

 

USING 절을 사용하여 customer_id 컬럼을 기준으로 두 테이블을 조인한다. 두 테이블에 customer_id라는 공통 컬럼이 있으므로, 조인 조건을 간단히 할 수 있다.

 

사용 종류

 

다중 공통 컬럼:

 

SELECT 
    *
FROM 
    table1
JOIN 
    table2
USING (column1, column2);

 

 

LEFT JOIN:

 

SELECT 
    *
FROM 
    table1
LEFT JOIN 
    table2
USING (common_column);

 

 

USING의 장단점

 

장점:

  • 간결함: 공통 컬럼을 ON 조건에서 반복해서 지정하지 않아도 된다.
  • 명확성: 조인할 때 공통 컬럼을 명확하게 표시하여 가독성을 높인다.

단점:

  • 제약 조건: 공통 컬럼이 두 테이블에 동일한 이름으로 존재해야 한다. 그렇지 않으면 사용할 수 없다.
  • 명시성 부족: 복잡한 조인 조건이 필요한 경우에는 ON 절을 사용하는 것이 더 명확할 수 있다.

 

ex)

//FOOD_ORDER 테이블과 PRODUCTS 테이블 조인 예시
SELECT 
    ORDER_ID, 
    PRODUCT_NAME, 
    SUM(AMOUNT) AS TOTAL_ORDER
FROM 
    FOOD_ORDER
JOIN 
    PRODUCTS
USING (PRODUCT_ID)
GROUP BY 
    ORDER_ID, PRODUCT_NAME;

 

이 쿼리는 FOOD_ORDER 테이블과 PRODUCTS 테이블을 PRODUCT_ID를 통해 조인하고, 각 주문에 대한 총 주문량을 계산하여 주문 ID와 제품 이름과 함께 표시한다.

 

INNER JOIN, LEFT JOIN 등과 함께 사용하여 공통 컬럼을 기반으로 데이터를 결합할 때 유용하다. 그러나 복잡한 조건이 필요할 경우 ON 절을 사용하는 것이 좋다.

 
 
반응형

'SQL 정리' 카테고리의 다른 글

OUTER, 테이블 여러개를 JOIN해야되는 경우  (2) 2024.07.23
CONCAT과 SUBSTRING 응용  (0) 2024.07.20
SQL 정리 .5  (0) 2024.07.04
SQL 정리. 4  (0) 2024.07.03
SQL 정리. 3  (0) 2024.06.28
'SQL 정리' 카테고리의 다른 글
  • OUTER, 테이블 여러개를 JOIN해야되는 경우
  • CONCAT과 SUBSTRING 응용
  • SQL 정리 .5
  • SQL 정리. 4
wanduek
wanduek
차근차근 쌓아가는 지식
  • wanduek
    완득님의 블로그
    wanduek
  • 전체
    오늘
    어제
    • 분류 전체보기 (194)
      • Onboarding (0)
      • 아티클 (0)
      • SQL 정리 (20)
      • 웹개발 기초정리(프엔) (9)
      • (Java)코테연습 (27)
      • 미니 프로젝트 (9)
        • 자기소개 웹페이지 (5)
        • 수강생 관리 프로그램(Java) (4)
      • GitHub 오류 및 명령어 정리 (7)
      • Java 문법정리 (Array부터) (17)
      • Java로 이용한 기능 (2)
      • Web지식 (12)
        • web3 (6)
        • 네트워크 (6)
      • 인텔리제이 오류 대처 방법 (1)
      • Computer Science (7)
      • Spring (38)
        • 미니 프로젝트(배달) (2)
        • Spring 트러블 슈팅 (3)
        • QueryDSL, JPQL (3)
        • 미니 프로젝트(뉴스피드) (5)
        • 미니 프로젝트(Trello) (2)
      • 개발자 밋업 (1)
      • Docker (2)
      • Redis (1)
      • AWS (6)
        • AWS 트러블 슈팅 (2)
      • Jmeter (2)
      • 우리 지금 만나 (12)
      • Kafka (1)
      • RabbitMQ (2)
        • 트러블 슈팅 (1)
      • STOMP (2)
      • WebSocket (3)
        • 트러블 슈팅 (2)
      • Node.js (2)
      • Elastic Search (2)
      • Nginx (1)
      • 퍼블엘 (2)
      • openresty (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    git
    json
    SQL
    fetch
    백앤드개발자 #초심자
    ㅏㄷ
    github
    groupby
    jquery
    where
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
wanduek
SQL정리. 6 (USING)
상단으로

티스토리툴바