[MariaDB Tutorial 번역] 11. Inner join
[MariaDB Tutorial 번역 글]
- Select : https://rural-mouse.tistory.com/43
- Order By : https://rural-mouse.tistory.com/44
- Where : https://rural-mouse.tistory.com/45
- Distinct : https://rural-mouse.tistory.com/46
- Between : https://rural-mouse.tistory.com/48
- Like : https://rural-mouse.tistory.com/49
- In : https://rural-mouse.tistory.com/50
- Limit : https://rural-mouse.tistory.com/51
- Is Null : https://rural-mouse.tistory.com/52
- Joins : https://rural-mouse.tistory.com/53
- Inner Join ←←
- Left Join : https://rural-mouse.tistory.com/55
- Group By : https://rural-mouse.tistory.com/56
- Having : https://rural-mouse.tistory.com/59
- Subqueries : https://rural-mouse.tistory.com/60
- Insert : https://rural-mouse.tistory.com/61
- Insert Multiple Rows : https://rural-mouse.tistory.com/62
- Insert Into Select : https://rural-mouse.tistory.com/63
- Update : https://rural-mouse.tistory.com/64
원문 : https://www.mariadbtutorial.com/mariadb-basics/mariadb-inner-join/
여기에 있는 모든 예제는 MariaDB sample database인 nation을 가지고 진행됩니다.
만약 읽고 따라 해 보시는 게 목적이라면 다운로드를 받고 읽어보시길 추천합니다.
원본 링크 : https://www.mariadbtutorial.com/getting-started/mariadb-sample-database/
MariaDB의 Inner join 절에 대한 소개
inner join절은 여러 Table의 데이터를 쿼리(질의)할 수 있게 해주는 join의 유형 중 하나입니다.
inner join 절을 사용하여 두 Table t1 과 t2에서 데이터를 검색한다고 가정합니다. 다음은 inner join의 문법을 보여주는 예시입니다.
select select_list
from t1
inner join t2 on join_condition;
이 구문에서 inner join은 t1 Table의 각 Row마다 t2의 모든 Row와 비교를 합니다. 두 Row가 join_condition을 거쳤을때 True가 나온다면 inner join절은 양쪽의 테이블에서 나온 Row에서 파생된 Column을 새로 생성하고 그 Row를 Result set에 포함합니다.
다음은 inner join 연산의 다이어그램입니다.
일반적으로 Table을 join 할때 Equal ( = )연산자를 사용하여 행을 일치시키고 t1의 primary key column과 t2의 foreign key column을 사용합니다.
select select_list
from t1
inner join t2 on t1.column1 = t2.column1;
만약 Column이 동일한 이름을 가지고 있다면 using 문법을 사용할 수 있습니다.
select select_list
from t1
inner join t2 using (column1);
3개 이상의 Table을 join 해야한다면 다음처럼 inner join절을 추가 해주면 됩니다.
select select_list
from t1
inner join t2 on join_condition2
inner join t3 on join_condition2
...;
MariaDB의 inner join 절 예제
A) MariaDB에서 두개의 Table을 결합하기 위해 inner join하는 예제
다음 명령문은 inner join을 사용하여 countries와 regions Table의 데이터를 가져오려고 합니다.
select
c.name country,
r.name region
from countries c
inner join regions r
on r.region_id = c.region_id
order by c.name;
이 예제에서 양쪽 모두의 Table에 있는 region_id Column의 값이 매칭하는데 사용되었습니다.
두개의 Column 이름이 동일하기 때문에 using 문법을 사용해도 됩니다.
select
c.name country,
r.name region
from
countries c
inner join regions r using (region_id)
order by
c.name;
B) MariaDB에서 3개 이상의 Table을 결합하기 위해 inner join 하는 예제
샘플 데이터베이스에서 countires, regions, continents 이 3 Table을 사용합니다.
다음은 inner join절을 countires, regions, continents 이 3개의 Table에서 데이터를 가져오기 위한 예제입니다.
select
c.name country,
r.name region,
t.name continent
from
countries c
inner join regions r using (region_id)
inner join continents t using (continent_id)
order by
c.name;
이번 튜토리얼에서는 여러개의 Table에서 데이터를 쿼리할때 사용하는 inner join 절을 배워봤습니다.
다음은 join 중 하나인 left join에 대해 조금 더 자세히 보겠습니다.