查询时显示多张表数据
例:查询每个员工的编号,姓名,职位部门名字,和部门位置。
思路:1、查什么
2、确定关联字段(95%)
select empno,ename,job,dname,loc
from emp,dept
where emp.deptno=dept.deptno;
例:查询员工的姓名,编号,基本工资,职位,领导姓名,部门名称,位置。
思路: 1、查什么
2、确定表 emp e emp m dept d
3、确定关联字段 e.mgr=m.empno emp.deptno=dept.deptno
Select e.ename,e.empno,e.sal,e.job,m.ename,d.dname,d.loc
from emp e,emp m,dept d
where e.mgr=m.empnoand d.deptno=e.deptno;
sql1999语法
Cross join:交叉连接,产生笛卡尔积
select * from emp , dept;select * from emp crossjoin dept;
Natural join:自然连接,自动找到匹配的关键字
select * from emp naturaljoin dept;
Join …using :指定消除笛卡尔积的字段
select * from emp join dept using(deptno);
Left|right |full [outer] join….on:左|右|全外连接
select * from emp leftjoin dept on emp.deptno=dept.deptno;select * from emp fulljoin dept on emp.deptno=dept.deptno;