oracle sql中join关键字和inner join关键字有什么区别?
我找不到关于关键字 join
的文档,但我在网上看到了使用它的示例.
I can't find documentations on the key word join
but I saw examples on the web using it.
我在 Oracle hr
模式中做了一些实验,我有表 departments
:
I was doing some experiment with it in Oracle hr
schema, where I have table departments
:
deparment_name
manager_id
location_id
表employees
:
first_name
employee_id
和表locations
:
location_id
city
查询应返回部门名称,部门经理的名字,部门所在城市.
Query should return the department_name, first_name of the manager of the department, and the city where the department is located.
与使用关键字inner join
带有join
的代码:
select d.department_name, e.first_name,l.city
from departments d
join employees e on d.manager_id=e.employee_id
join locations l on d.location_id=l.location_id
带有内连接
的代码:
select d.department_name, e.first_name,l.city
from departments d
inner join employees e on d.manager_id=e.employee_id
inner join locations l on d.location_id=l.location_id
这两种情况是否有区别,或者我只是偶然发现它们返回相同结果的情况?
Is there a difference between the two condition, or am I just happen to stumble on a situation where they return the same results?
推荐答案
- 遵循 1992 ANSI SQL 参考,INNER 是可选的:
- 遵循 Oracle 标准(9i 以后),
INNER
前缀也是可选的.在 9i 之前,Oracle 不遵循 ANSI 规则,甚至不支持JOIN
语法. - Following Oracle Standards (9i onward), the
INNER
prefix is also optional. Before 9i, Oracle didn't follow ANSI rules, and didn't even supportJOIN
syntax.
查询表达式 179 7.5 - 连接表
Query expressions 179 7.5 - joined table
3) 如果指定了合格的联接而联接类型未指定指定,则 INNER 是隐式的.
3) If a qualified join is specified and a join type is not specified, then INNER is implicit.
相关文章