3----多表查询

来源:互联网 发布:linux 进程调度 编辑:程序博客网 时间:2024/05/19 17:59

1.笛卡尔积

select count(*) from emp;   -----14
select count(*) from dept; ------4
则:

select count(*) from emp,dept;  -----56
为了避免这种现象,则需要字段关联查询

select * from emp e ,dept d where e.deptno=d.deptno;

2.左右连接

select e.empno,e.ename,d.* from emp e,dept d where e.deptno=d.deptno;
此时结果不包含deptno为40的记录,若想包含,则如下:

select e.empno,e.ename,d.* from emp e,dept d where e.deptno(+)=d.deptno;
此时,以表dept表为准,包含了deptno为40的记录。

交叉连接:

select * from emp cross join  dept;   cross join====,  56行





原创粉丝点击