join : 두 개 이상의 테이블을 결합하여 하나로 집합하는 연산
from A테이블 left join B테이블 : 왼쪽에 있는 A테이블의 모든 데이터를 보여주고, 일치하는 B테이블의 데이터를 결합한다.
from A테이블 right join B테이블 : 오른쪽에 있는 B테이블의 모든 데이터를 보여주고, 일치하는 A테이블의 데이터를 결합한다.
MySQL 테이블 결합하기 join과 left join
- from 테이블1 join 테이블2 on 테이블1.외래키 = 테이블2.참조컬럼;
두 테이블을 결합하기 위해서는 foreigh key(외래키)가 필요하다.
테이블 명이 긴 경우에는 'as 약자'로 줄여서 사용해도 된다.
as 는 사용해도 되고, as 생략해도 된다.
orders 테이블은 o로 변경, customers 테이블은 c로 변경했고,
select 뒤에 확인하고 싶은 컬럼만 선택했다.
그런데, 두 개 테이블을 join으로 결합하면, 공통으로 들어있는 데이터만 가져온다.
즉, o.cutomer_id와 c.id 컬럼에 둘 다 존재하는 데이터만 볼 수 있다.
예로, 회원가입만 하고 주문을 한 번도 하지 않은 사람들은 볼 수 없다.
따라서 모든 고객 데이터를 가져오되, 주문 안 한 고객 정보도 볼 수 있는 방법이 left join, right join 이다.
- from customers left join orders
: 왼쪽에 있는 customers 테이블의 모든 고객 데이터는 가져오되, 주문 안 한 고객은 orders 테이블 데이터값이 없어서 null로 매칭된다.
- from customers right join orders
: orders 테이블의 모든 주문 데이터와 매칭되는 customers 데이터값을 가져와서, 고객 정보가 중복될 수 있다.
where 조건식 으로 원하는 조건의 데이터만 가져올 수도 있다.
'Database > MySQL' 카테고리의 다른 글
[MySQL] like(SQL 예약어)를 테이블명으로 사용하는 방법 (0) | 2024.05.17 |
---|---|
[MySQL] 다중 테이블, 3개 이상의 테이블을 조인하는 방법 (0) | 2024.05.16 |
[MySQL] 여러 테이블 생성시, 연결하는 Foreign Key 설정하는 방법 (0) | 2024.05.16 |
[MySQL] 테이블 툴 Datetype TIMESTAMP 디폴트 이용하기 (0) | 2024.05.16 |
[MySQL] 날짜와 시간관련 중요한 함수들 (0) | 2024.05.16 |