oracle sql中的join关键字和inner join关键字有啥区别? [复制]

Posted

技术标签:

【中文标题】oracle sql中的join关键字和inner join关键字有啥区别? [复制]【英文标题】:what is the difference between join keyword and inner join keyword in oracle sql? [duplicate]oracle sql中的join关键字和inner join关键字有什么区别? [复制] 【发布时间】:2013-03-31 06:55:09 【问题描述】:

我找不到关于关键字 join 的文档,但我在网上看到了使用它的示例。

我在 Oracle hr 架构中对其进行了一些实验,其中我有表 departments

deparment_name manager_id location_id

一张桌子employees

first_name employee_id

还有表locations

location_id city

查询应返回部门名称、部门经理的名字和部门所在的城市。

与使用关键字 inner join 相比,使用关键字 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

代码inner join:

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

这两种情况有区别,还是我只是偶然发现它们返回相同结果的情况?

【问题讨论】:

之前提问并回答:***.com/questions/565620/… 这不是对您帖子的批评。这表明以前有人问过这个问题,并且那里有一个高质量的答案。 @xQbert:虽然不是关于甲骨文 @xQbert:所以?该答案基于什么? oracle 有义务表现得像 sql server 吗?您想参考一个通用问题 - 查找有关 ANSI SQL 的问题 @Community:提到的问题 IS NOT 重复,它是关于另一个 RDBMS,它的行为不被认为是相似的。 @xQbert:他的回答(尽管它很短并且没有任何基于文档的证明) - 是针对特定问题的特定答案。您的参考 - 是关于另一个 RDBMS 的问题。如果你不知道两者 - 你不能说,如果你可以遵循它。 【参考方案1】: 遵循 1992 ANSI SQL 参考,INNER is optional:

查询表达式 179 7.5 - 连接表

3) 如果指定了 qualified join 而没有 join type 指定,则 INNER 是隐式的。

遵循 Oracle 标准(9i 以后),INNER 前缀也是可选的。在 9i 之前,Oracle 不遵循 ANSI 规则,甚至不支持JOIN 语法。

【讨论】:

以上是关于oracle sql中的join关键字和inner join关键字有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章