


select 表1.name,表2.name from 表1,表2 where 表1.外键=表2.被链接的字段;
- # (1)查询每一个员工的姓名,以及关联的部门名称--隐式查询
- select emp.name,course.name from emp,course where emp.number=course.id;

select 表1.name,表2.name from 表1 inner join 表2 on 表1.外键 =表2.被链接的字段;
- # (2)查询每一条员工的姓名,以及关联的部门名称--显式查询
- # inner join ... on ...
- select emp.name,course.name from emp inner join course on emp.number =course.id;
相对而言,隐式连接好理解好书写,语法简单,担心的点较少。但是显式连接可以减少字段的扫描,有更快的执行速度。这种速度优势在3张或更多表连接时比较明显。



- -- 外连接演示:
- -- 1、查询emp表的所有数据,和对应的部门信息(左外连接):
- -- 表结构:emp、course
- -- 左外连接,会显示左表中的每一条数据
- select emp.*,course.name from emp left outer join course on emp.number=course.id;

- -- 2、查询course表的所有数据,和对应的员工信息(右外连接):
- -- 表结构:emp、course
- -- 右外连接,会显式左表中的每一条数据
- select course.*,emp.* from emp right outer join course on emp.number=course.id;

自连接顾名思义,就是自己链接自己,基础语法如下:
select 字段列表 from 表A 别名A join 表A 别名B on 条件……;

- -- 自链接演示
- # 一张表自己连接自己
- # select 字段列表 from 表A 别名A join 表A 别名B on 条件……;
- # 查询员工及其所属领导的名字
- select e1.name as '员工',e2.name as '领导' from emp e1 join emp e2 on e1.manager=e2.id;
