# 20240422
### ⏰ Senna
- Join이란 두개 이상의 테이블을 결합하는 것
- RDBMS에서 데이터 정규화를 진행하면 여러개의 테이블이 관계를 가지며 나누어지게 된다
- 나누어진 테이블에서 데이터를 효과적으로 검색하기위해 조인이 필요하다
<br>
<br>
### 🍝 zzawang
출처 : [😎](https://www.w3schools.com/mysql/mysql_join.asp)
`JOIN`은 **두 개 이상의 테이블 사이의 관련 열**을 기반으로 두 개 이상의 테이블에서 **행을 결합하는 데 사용**한다.
MySQL에서 지원되는 조인 유형 중 제일 기본적인 INNER JOIN을 살펴보자.
예를 들어, "주문" 테이블의 CustomerID 열이 "고객" 테이블의 CustomerID를 참조하고 있을 때 위의 두 테이블 간의 관계는 "CustomerID" 열이라고 할 수 있다.
* INNER JOIN SQL문 예시문
```sql
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
```
<br>
* MySQL에서 지원되는 조인 유형
`INNER JOIN`: 두 테이블 모두에서 일치하는 값이 있는 레코드를 반환합니다.
`LEFT JOIN`: 왼쪽 테이블의 모든 레코드를, 오른쪽 테이블의 일치하는 레코드를 반환합니다.
`RIGHT JOIN`: 오른쪽 테이블의 모든 레코드를, 왼쪽 테이블의 일치하는 레코드를 반환합니다.
`CROSS JOIN`: 두 테이블의 모든 레코드를 반환합니다.
<br>
#### 🤔 왜 `LEFT JOIN`과 `RIGHT JOIN`이 별개로 있는 것일까?
<br><br>
### 😻 Jayden
### join은 왜 필요한가
- where을 이용해서 join을 표현할 수 있지만 join을 쓸 때 코드가 더 보기 좋아진다. where만 사용하면 쿼리문이 너무 길어지는 경우가 있다.
- 우선 left,right 같은 outer join은 테이블이 2개일때는 순서가 상관 없지만 3개이상으로 늘어날 경우 순서가 중요해진다.
### right join이 유용한경우
- https://stackoverflow.com/questions/689963/does-right-outer-join-have-any-useful-purpose/7313507#7313507
### multiple queries vs join
- https://stackoverflow.com/questions/1932019/which-provides-better-performance-one-big-join-or-multiple-queries?rq=3
<br>
<br>
### 🩶 Sylve
### MySQL JOIN 수행 원리
- FROM 절에 두 개 이상의 테이블이 나열될 경우 조인이 수행되며, 조인 연산은 두 테이블 사이에서 수행
- FROM 절에 나열된 모든 테이블을 조인할 때까지 반복 수행
#### 1. INNER JOIN(내부 조인)
- INNER JOIN은 조인 중 가장 많이 사용되며, 보통 JOIN을 얘기할 때는 INNER JOIN을 말하는 것이다.