数据库笔记—4—多表连接查询
worker为已制作好的员工职工表
salary为已制作好的员工工作表
1.
--双表内部连接查询
--查询职工号,姓名和部门名
select wid,wname,dname
from worker,depart
--方法一,在worker中指定内部连接的条件 查询职工号,姓名和部门名并按职工号排序 降序
select wid,wname,dname
from worker,depart
where worker.depid=depart.did
order by wid desc
--方法二,在from中指定内部连接的条件
select wid,wname,dname
from worker inner join depart on worker.depid=depart.did
order by wid asc
2.
--多表内部连接查询
--在where中指定内部连接的条件 查询职工号,姓名和部门名和2011年2月份工资,最后一列要求显示‘2011年2月工资’,并按部门号排序
select worker.wid as 职工号,wname as 姓名,dname as 部门名,actualsalary as '2011年2月工资'
from worker,depart,salary
where worker.depid=depart.did and worker.wid=salary.wid and year(sdate)=2011 and month(sdate)=2
order by dname
--方法二,在from中指定内部连接的条件
select worker.wid as 职工号,wname as 姓名,dname as 部门名,actualsalary as '2011年2月工资'
from worker inner join depart on worker.depid=depart.did inner join salary on worker.wid=salary.wid
where year(sdate)=2011 and month(sdate)=2
order by dname
3.
--外部链接查询
--方法一,左外连接查询,对于职工表worker和员工培训表study进行左外连接
select *
from worker left outer join study on worker.wid=study.wid
--方法二,右外连接查询
select *
from worker right outer join study on worker.wid=study.wid
--方法三,完全外部连接查询,对于职工表worker和员工培训表study进行完全外连接
select *
from worker full outer join study on worker.wid=study.wid
--方法四,交叉连接查询,对于职工表worker和员工培训表study进行交叉连接
select *
from worker cross join study
select *
from worker,study