trainer right join pokemon on pokemon.type = trainer.type에서 type이 electric인 데이터가 pokemon 데이터가 n개, trainer 데이터가 m개인 경우 어떻게 될까?
-> n*m + α 개의 데이터가 만들어진다.
(α: 포켓몬에만 존재하는 타입을 가진 데이터)
실험
1. 데이터 구성
pokemon
create table pokemon (
id INT auto_increment primary key,
name varchar(20),
type varchar(20)
);
trainer
create table trainer (
trainer_id BIGINT primary key,
trainer_name varchar(20),
trainer_type varchar(20)
);
pokemon data
| id | name | type |
|---|
| 1 | pikachu | electric |
| 2 | balbusaur | grass |
| 3 | pikachu | electric |
| 4 | coil | electric |
trainer data
| trainer_id | trainer_name | trainer_type |
|---|
| 1 | ash | electric |
| 2 | martin | electric |
| 3 | hyuaryun | fire |
2. 쿼리 실행
select * from trainer right join pokemon
on trainer.trainer_type=pokemon.type
3. 결과
| trainer_id | trainer_name | trainer_type | id | name | type |
|---|
| 1 | ash | electric | 1 | pikachu | electric |
| 1 | ash | electric | 3 | pikachu | electric |
| 1 | ash | electric | 4 | coil | electric |
| 2 | martin | electric | 1 | pikachu | electric |
| 2 | martin | electric | 3 | pikachu | electric |
| 2 | martin | electric | 4 | coil | electric |
| NULL | NULL | NULL | 2 | bulbasaur | grass |