小编jbo*_*one的帖子

NATURAL JOIN和USING子句的意外结果

所以我正在学习从多个表中获取数据,我有一个关于NATURAL JOIN和USING子句的问题.所以我有2个表,我正在从中提取数据; 员工和部门.

SQL> describe employees 
Name                                      Null?    Type
 ----------------------------------------- -------- ------------------------
 EMPLOYEE_ID                                        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> describe departments
 Name                                      Null?    Type
 ----------------------------------------- -------- ------------------------
 DEPARTMENT_ID                             NOT NULL NUMBER(4)
 DEPARTMENT_NAME                                    VARCHAR2(30)
 MANAGER_ID                                         NUMBER(6)
 LOCATION_ID                                        NUMBER(4)
Run Code Online (Sandbox Code Playgroud)

当我在两个不同的表达式中使用NATURAL JOIN和USING时,我有两个不同的输出.我知道USING特别匹配两个表中的一列,但这对输出有何影响?为什么USING的表达与NATURAL JOIN相比会产生一个额外的值?

SELECT department_id, manager_id, last_name, location_id
FROM employees NATURAL JOIN departments
WHERE department_id = 80
ORDER BY …
Run Code Online (Sandbox Code Playgroud)

sql database oracle

3
推荐指数
1
解决办法
134
查看次数

标签 统计

database ×1

oracle ×1

sql ×1