1.内连接
只列出这些连接表中与连接条件相匹配的数据行
select * from emp e inner join dept d on e.dept_id=d.id;
select e.name,d.name from emp e,dept d where e.dept_id=d.id;
2.外连接
select...from join_table (LEFT|RITHT|FULL) [OUTER] join join_table2
on join_condotion where where_definition
不仅列出与连接条件相匹配的行,还列出坐标(左外连接)、右表(右外连接)
或两个表(全外连接)中所有符合where过滤条件的数据行
左外连接实例
select * from emp left join dept on emp dept_id=dept.id;
3.交叉连接
select ... from join_table cross join join_table2;
返回连接表的所有数据行的笛卡尔积
其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
select e.name,d.name from emp e,dept d;
4.自连接
参与连接的表都是同一张表(通过给表取别名虚拟出)
select e1.name,e2.name from emp e1 left join emp e2 on e1.GmrId=e2.id;