?
?
- 根据连接的类型,多表连接查询主要可以分为交叉连接查询、内连接查询和外连接查询。
- 内连接查询又可分为等值连接查询、自然连接查询和自连接查询等;
- 外连接查询则可以分为左外连接查询、右外连接查询和全外连接查询等。
多表连接查询的基本语法:
select?name_list
from?table1
join_type?table2
on?(join_condition);
其中,jion_type是连接类型;关键字on用于指定连接条件。jion_type选择情况如下:
?
?
cross?join:表示对两表进行交叉连接,这时语句中,不能带有on关键字,即没有查询条件;
[inner]?join:表示对两表进行等值连接,其中关键字inner可以省略;
?
left[outer]?join:表示对两表进行左外连接查询,其中关键字outer可以省略;
?
right[outer]?join:表示对两表进行右外连接查询,其中关键字outer可以省略;
?
full[outer]?join:表示对两表进行全外连接查询,其中关键字outer可以省略;
?
DEMO:
?
ta的table:
?
A | B | |
1 | a1 | b1 |
2 | a2 | b2 |
3 | a3 | b3 |
?
?
?
?
?
?
tb的table:
?
A | C | |
1 | a1 | c1 |
2 | a2 | c3 |
3 | a4 | c4 |
?
?
- 内连接
select * fromta inner join tbon ta.A=tb.A?
A | B | A | C | |
1 | a1 | b1 | a1 | c1 |
2 | a2 | b2 | a2 | c2 |
- 交叉连接
select * from ta cross join tb
?

?
- 全连接
select * fromta full outer join tbon ta.A=tb.A?
?
- A和B的左外连接
select * fromta left outer join tbon ta.A=tb.A
?

?
- A和B的右外连接
select * fromta right outer join tbon ta.A=tb.A?

?
?