⭐ 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 |