對多個表進行join時,在select語句中,如果使用using語句,則using語句中選中的列,在select語句中不能指定限定詞,否則會報ORA-25154
為沂源等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及沂源網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站制作、網(wǎng)站設計、沂源網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
查看emp表
SQL> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- ---------- --------- ----- ----------- --------- --------- ------ 7369 SMITH CLERK 7902 1980/12/17 800.00 20 7499 ALLEN SALESMAN 7698 1981/2/20 1600.00 300.00 30 7521 WARD SALESMAN 7698 1981/2/22 1250.00 500.00 30 7566 JONES MANAGER 7839 1981/4/2 2975.00 20 7654 MARTIN SALESMAN 7698 1981/9/28 1250.00 1400.00 30 7698 BLAKE MANAGER 7839 1981/5/1 2850.00 30 7782 CLARK MANAGER 7839 1981/6/9 2450.00 10 7788 SCOTT ANALYST 7566 1987/4/19 3000.00 20 7839 KING PRESIDENT 1981/11/17 5000.00 10 7844 TURNER SALESMAN 7698 1981/9/8 1500.00 0.00 30 7876 ADAMS CLERK 7788 1987/5/23 1100.00 20 7900 JAMES CLERK 7698 1981/12/3 950.00 30 7902 FORD ANALYST 7566 1981/12/3 3000.00 20 7934 MILLER CLERK 7782 1982/1/23 1300.00 10
查看dept表
SQL> select * from dept; DEPTNO DNAME LOC ------ -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON
在select語句中使用using語句中指定的列,添加限定詞
SQL> select e.deptno,e.sal,d.dname from emp e join dept d using(deptno) ORA-25154: USING 子句的列部分不能有限定詞
不添加時
SQL> select deptno,e.sal,d.dname from emp e join dept d using(deptno); DEPTNO SAL DNAME ------ --------- -------------- 10 2450.00 ACCOUNTING 10 5000.00 ACCOUNTING 10 1300.00 ACCOUNTING 20 2975.00 RESEARCH 20 3000.00 RESEARCH 20 1100.00 RESEARCH 20 800.00 RESEARCH 20 3000.00 RESEARCH 30 1250.00 SALES 30 1500.00 SALES 30 1600.00 SALES 30 950.00 SALES 30 2850.00 SALES 30 1250.00 SALES 14 rows selected
而使用on時,則必須指定限定詞才能正確的顯示,否則會報錯,提示deptno未能識別是哪個表,因為dept和emp表中都有deptno列
select deptno,e.sal,d.dname from emp e join dept d on(e.deptno=d.deptno); select deptno,e.sal,d.dname from emp e join dept d on(e.deptno=d.deptno) ORA-00918: 未明確定義列
給deptno添加限定詞,就可以正常顯示了
SQL> select e.deptno,e.sal,d.dname from emp e join dept d on(e.deptno=d.deptno); DEPTNO SAL DNAME ------ --------- -------------- 10 2450.00 ACCOUNTING 10 5000.00 ACCOUNTING 10 1300.00 ACCOUNTING 20 2975.00 RESEARCH 20 3000.00 RESEARCH 20 1100.00 RESEARCH 20 800.00 RESEARCH 20 3000.00 RESEARCH 30 1250.00 SALES 30 1500.00 SALES 30 1600.00 SALES 30 950.00 SALES 30 2850.00 SALES 30 1250.00 SALES 14 rows selected
在使用using時,對select語句中的選定using指定的列時,無需指定限定詞
在使用on時,必須在select語句中對on語句條件中的條件列添加限定詞。