반응형
join
여러개의 테이블을 합쳐서 가져올때 사용
select * from customer;

select * from order;

on은 연결고리가 되어줄 컬럼을 적어준다.
즉, Foreign Key로 설정한 컬럼을 작성한다.
select *
from customers
join orders
on customers.id = orders.customer_id;

테이블 이름을 줄여서 사용하는 방법
from 뒤 테이블명, join 뒤 테이블명 뒤에 약자를 설정할 수 있다.
select * from customers c join orders o on c.id = o.customer_id ;

컬럼의 이름이 중복되는 경우는, 컬럼 이름을 바꿔서 가져와야 한다.
select c.id as customer_id , c.first_name, c.email, o.id as order_id, o.order_date, o.amount
from customers c
join orders o
on c.id = o.customer_id ;

지금까지 위에서 한 join은 두개 테이블에 공통으로 들어있는 데이터만 가져온 것이다. (교집합)
모든 고객 데이터를 가져오되, 주문정보가 없는 고객도 나타나도록 가져오는 방법 left join
left join은 왼쪽의 테이블 데이터를 모두 가져와서 join해라 라는 뜻
데이터가 공백인 null을 포함해서 모두 가져올 수 있다.
select *
from customers c
left join orders o
on c.id = o.customer_id ;

반응형
'TOOL > MySQL' 카테고리의 다른 글
| MySQL - ifnull( ) (0) | 2022.05.17 |
|---|---|
| MySQL - group by의 having 사용 방법 (0) | 2022.05.17 |
| MySQL - 여러 테이블 생성 시 foreign key 설정하는 방법 (0) | 2022.05.17 |
| MySQL - if( ) (0) | 2022.05.17 |
| MySQL - CASE (0) | 2022.05.16 |