oracle笛卡尔积与等值连接

要显示雇员名,雇员工资及所在部门的名字

第一步:select * from emp a1,dept a2

没有连接条件的返回结果会形成笛卡尔积,结果如下。很多生成的记录是没有意义的。

  EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DETPNO DNAME LOC
1 7369 SMITH CLERK 7902 1980/12/17 800   20 10 ACCOUNTING NEW YORK
2 7499 ALLEN SALESMAN 7698 1981/2/20 1600 300 30 10 ACCOUNTING NEW YORK
3 7521 WARD SALESMAN 7698 1981/2/22 1250 500 30 10 ACCOUNTING NEW YORK
4 7566 JONES MANAGER 7839 1981/4/2 2975   20 10 ACCOUNTING NEW YORK
5 7654 MARTIN SALESMAN 7698 1981/9/28 1250 1400 30 10 ACCOUNTING NEW YORK
6 7698 BLAKE MANAGER 7839 1981/5/1 2850   30 10 ACCOUNTING NEW YORK
7 7782 CLARK MANAGER 7839 1981/6/9 2450   10 10 ACCOUNTING NEW YORK
8 7788 SCOTT ANALYST 7566 1987/4/19 1500   20 10 ACCOUNTING NEW YORK
9 7839 KING PRESIDENT   1981/11/17 5000   10 10 ACCOUNTING NEW YORK
10 7844 TURNER SALESMAN 7698 1981/9/8 1500 0 30 10 ACCOUNTING NEW YORK
11 7876 ADAMS CLERK 7788 1987/5/23 1100   20 10 ACCOUNTING NEW YORK
12 7900 JAMES CLERK 7698 1981/12/3 950   30 10 ACCOUNTING NEW YORK
13 7902 FORD ANALYST 7566 1981/12/3 3000   20 10 ACCOUNTING NEW YORK
14 7934 MILLER CLERK 7782 1982/1/23 1300   10 10 ACCOUNTING NEW YORK
15 7369 SMITH CLERK 7902 1980/12/17 800   20 20 RESEARCH DALLAS
16 7499 ALLEN SALESMAN 7698 1981/2/20 1600 300 30 20 RESEARCH DALLAS
17 7521 WARD SALESMAN 7698 1981/2/22 1250 500 30 20 RESEARCH DALLAS
18 7566 JONES MANAGER 7839 1981/4/2 2975   20 20 RESEARCH DALLAS
19 7654 MARTIN SALESMAN 7698 1981/9/28 1250 1400 30 20 RESEARCH DALLAS
20 7698 BLAKE MANAGER 7839 1981/5/1 2850   30 20 RESEARCH DALLAS
21 7782 CLARK MANAGER 7839 1981/6/9 2450   10 20 RESEARCH DALLAS
22 7788 SCOTT ANALYST 7566 1987/4/19 1500   20 20 RESEARCH DALLAS
23 7839 KING PRESIDENT   1981/11/17 5000   10 20 RESEARCH DALLAS
24 7844 TURNER SALESMAN 7698 1981/9/8 1500 0 30 20 RESEARCH DALLAS
25 7876 ADAMS CLERK 7788 1987/5/23 1100   20 20 RESEARCH DALLAS
26 7900 JAMES CLERK 7698 1981/12/3 950   30 20 RESEARCH DALLAS
27 7902 FORD ANALYST 7566 1981/12/3 3000   20 20 RESEARCH DALLAS
28 7934 MILLER CLERK 7782 1982/1/23 1300   10 20 RESEARCH DALLAS
29 7369 SMITH CLERK 7902 1980/12/17 800   20 30 SALES CHICAGO
30 7499 ALLEN SALESMAN 7698 1981/2/20 1600 300 30 30 SALES CHICAGO
31 7521 WARD SALESMAN 7698 1981/2/22 1250 500 30 30 SALES CHICAGO
32 7566 JONES MANAGER 7839 1981/4/2 2975   20 30 SALES CHICAGO
33 7654 MARTIN SALESMAN 7698 1981/9/28 1250 1400 30 30 SALES CHICAGO
34 7698 BLAKE MANAGER 7839 1981/5/1 2850   30 30 SALES CHICAGO
35 7782 CLARK MANAGER 7839 1981/6/9 2450   10 30 SALES CHICAGO
36 7788 SCOTT ANALYST 7566 1987/4/19 1500   20 30 SALES CHICAGO
37 7839 KING PRESIDENT   1981/11/17 5000   10 30 SALES CHICAGO
38 7844 TURNER SALESMAN 7698 1981/9/8 1500 0 30 30 SALES CHICAGO
39 7876 ADAMS CLERK 7788 1987/5/23 1100   20 30 SALES CHICAGO
40 7900 JAMES CLERK 7698 1981/12/3 950   30 30 SALES CHICAGO
41 7902 FORD ANALYST 7566 1981/12/3 3000   20 30 SALES CHICAGO
42 7934 MILLER CLERK 7782 1982/1/23 1300   10 30 SALES CHICAGO
43 7369 SMITH CLERK 7902 1980/12/17 800   20 40 OPERATIONS BOSTON
44 7499 ALLEN SALESMAN 7698 1981/2/20 1600 300 30 40 OPERATIONS BOSTON
45 7521 WARD SALESMAN 7698 1981/2/22 1250 500 30 40 OPERATIONS BOSTON
46 7566 JONES MANAGER 7839 1981/4/2 2975   20 40 OPERATIONS BOSTON
47 7654 MARTIN SALESMAN 7698 1981/9/28 1250 1400 30 40 OPERATIONS BOSTON
48 7698 BLAKE MANAGER 7839 1981/5/1 2850   30 40 OPERATIONS BOSTON
49 7782 CLARK MANAGER 7839 1981/6/9 2450   10 40 OPERATIONS BOSTON
50 7788 SCOTT ANALYST 7566 1987/4/19 1500   20 40 OPERATIONS BOSTON
51 7839 KING PRESIDENT   1981/11/17 5000   10 40 OPERATIONS BOSTON
52 7844 TURNER SALESMAN 7698 1981/9/8 1500 0 30 40 OPERATIONS BOSTON
53 7876 ADAMS CLERK 7788 1987/5/23 1100   20 40 OPERATIONS BOSTON
54 7900 JAMES CLERK 7698 1981/12/3 950   30 40 OPERATIONS BOSTON
55 7902 FORD ANALYST 7566 1981/12/3 3000   20 40 OPERATIONS BOSTON
56 7934 MILLER CLERK 7782 1982/1/23 1300   10 40 OPERATIONS BOSTON

第二步,等值连接消除笛卡尔积

    

select * from emp a1,dept a2 where a1.deptno=a2.deptno;

第三步,选取列

select a1.ename,a1.sal,a2.dname from emp a1,dept a2 where a1.deptno=a2.deptno;

猜你喜欢

转载自blog.csdn.net/chuijinbao/article/details/84203615