데이터베이스/SQL

⭐INNER JOIN(내부 조인)

dev_jiwon 2022. 12. 14.

⭐ INNER JOIN(내부 조인) ⭐

🔥 INNER JOIN은 조인 중 가장 많이 사용된다. 따라서 보통 JOIN을 얘기할 때에는 INNER JOIN을 말한다.

 

example 

쇼핑몰 사이트에서 사용자가 물건을 구매하기 위해서는 구매 테이블에 물품, 수량 등을 입력할 것이며, 외래키인 ID와 함께 삽입될 것이다. 물품을 구매하고 배송을 할 때는 그 구매 테이블에 있는 정보 뿐만 아니라 사용자 테이블에 있는 배송 주소, 전화번호 등을 함께 알아야 한다. 이 때 사용하는 것이 INNER JOIN이다.

 

🧩 SELECT <열 목록> FROM <기준 테이블> INNER JOIN <참조할 테이블> ON <조인 조건> [WHERE 검색조건]

 

  • 위 형식에서 INNER JOIN이 아닌 그냥 JOIN으로 써도 INNER JOIN으로 인식함

 

🧩

USE shopDB; 
SELECT * FROM buyTBL 
INNER JOIN userTBL 
ON buyTBL.userID = userTBL.userID 
WHERE buyTBL.userID = ‘LEE’;

 

  • 이렇게 작성하면 buyTBL의 userID와 userTBL의 userID가 같은 테이블끼리 합쳐진 결과를 검색하게 된다. 그리고 제일 아랫줄에 WHERE에서 userID가 ‘LEE’라는 조건을 두었으니, buyTBL의 userID가 ‘LEE’인 행들만 검색할 것이다,
  • 여기서 모든 열을 검색할 필요는 없기 때문에 SELECT *이 아니라 buyTBL.userID, prodID, amount, name, addr, phoneNumber 라던지 필요한 열만 검색하면 된다.
  • JOIN은 두 개 이상의 테이블을 결합하기 때문에 결합하는 테이블이 동일한 열을 가지고 있다면 ‘테이블이름.열이름’ 형식으로 테이블명을 명시해줘야 에러가 발생하지 않는다. 가장 안전한 방법은 모든 열이름에 테이블명을 붙혀주는 것이다.

 

🧩

SELECT BuyTBL.userID, BuyTBL.prodID, BuyTBL.amount, UserTBL.name, UserTBL.addr, UserTBL.phoneNumber
FROM buyTBL B
INNER JOIN userTBL U
ON B.userID = U.userID

 

  • 하지만 이렇게 되면 코드가 길어지고, 복잡해진다. + 검색할 열이 많다면 더 길어질 것이다.

→ 코드를 간결하게 만들기 위해서 각 테이블에 별칭(Alias)를 줄 수 있다. (가독성과 안전성을 위해 적극 권장)

 

🧩

SELECT B.userID, B.prodID, B.amount, U.name, U.addr, U.phoneNumber
FROM buyTBL B
INNER JOIN userTBL U
ON B.userID = U.userID

'데이터베이스 > SQL' 카테고리의 다른 글

MySQL 설치  (0) 2022.08.09
데이터베이스(DATABASE; DBS)  (0) 2022.08.04

댓글