重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4360|回复: 0
打印 上一主题 下一主题

关于USING

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-27 10:31:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

示例:

SQL> select e.employee_id,d.department_name,department_id
  2  from employees e join departments d using(department_id);

EMPLOYEE_ID DEPARTMENT_NAME                DEPARTMENT_ID
----------- ------------------------------ -------------
        200 Administration                            10
        201 Marketing                                 20
        202 Marketing                                 20
        114 Purchasing                                30
        115 Purchasing                                30
        116 Purchasing                                30
        117 Purchasing                                30
        118 Purchasing                                30
        119 Purchasing                                30
        203 Human Resources                           40
        120 Shipping                                  50

EMPLOYEE_ID DEPARTMENT_NAME                DEPARTMENT_ID
----------- ------------------------------ -------------
        121 Shipping                                  50
        122 Shipping                                  50
        123 Shipping                                  50

 

解析:

通过查看employees和departments两表的表结构可看出,这两张表有两个字段同名,现在我们只想关联一个同名字段,而并非让所有同名的字段自然关联,这时候就用到USING子句限定只要关联的字段。另外,关联的字段是两张表都有的,属于公共的,所以不能在该字段之前加表前缀。

SQL> desc employees;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 EMPLOYEE_ID                               NOT NULL NUMBER(6)
 FIRST_NAME                                         VARCHAR2(20)
 LAST_NAME                                 NOT NULL VARCHAR2(25)
 EMAIL                                     NOT NULL VARCHAR2(25)
 PHONE_NUMBER                                       VARCHAR2(20)
 HIRE_DATE                                 NOT NULL DATE
 JOB_ID                                    NOT NULL VARCHAR2(10)
 SALARY                                             NUMBER(8,2)
 COMMISSION_PCT                                     NUMBER(2,2)
 MANAGER_ID                                         NUMBER(6)
 DEPARTMENT_ID                                      NUMBER(4)

SQL> desc departments;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 DEPARTMENT_ID                             NOT NULL NUMBER(4)
 DEPARTMENT_NAME                           NOT NULL VARCHAR2(30)
 MANAGER_ID                                         NUMBER(6)
 LOCATION_ID                                        NUMBER(4)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-6-26 21:39 , Processed in 0.108951 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表