join和on语句中select语句选择公共列的区别-创新互联
对多个表进行join时,在select语句中,如果使用using语句,则using语句中选中的列,在select语句中不能指定限定词,否则会报ORA-25154
10年积累的网站制作、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有云龙免费网站建设让你可以放心的选择与我们合作。查看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语句条件中的条件列添加限定词。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享名称:join和on语句中select语句选择公共列的区别-创新互联
标题来源:http://myzitong.com/article/dgceph.html