# Join? Left Join? Right Join? Inner Join?傻傻分不清楚
###### tags: `Hibernate`,`Hibernate`
# 前提
1. 今天我有兩個table分別叫做test1, test2
```sql
create table test1(
id int not null,
value char(10)
)
create table test2(
id int not null,
value char(10)
)
```
2. 插入數據
```sql
/*insert data in test1*/
insert into test1 values(1,'testaa');
insert into test1 values(2,'testaa');
insert into test1 values(3,'testaa');
/*insert data in test2*/
insert into test2 values(1,'testaa1');
insert into test2 values(2,'testaa2');
insert into test2 values(4,'testaa3');
```
## Left Join
如果我使用對test1 table left join到test2 table,你可以發現他會以test1為主表,去找test2 table看看id有沒有同時也存在於table1的資料,然後印出來
> sql語法
```sql
select * from test1 p left join test2 b on p.id=b.id
```
- 你會發現印出來的結果,會以test1 table為主,會印出所有test1的結果,可是test2的結果只顯示test1有的
> Result

## Right Join
如果使用right join就會以test2的table為主
> sql 語法
```sql
select * from test1 p right join test2 b on p.id=b.id;
```
> result

## Inner Join
就只會顯示同時存在的資料
> sql 語法
```sql
select * from test1 p inner join test2 b on p.id=b.id;
```
> result
