# 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을 말하는 것이다.