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关键字有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

SQL JOINSQL INNER JOIN 关键字SQL LEFT JOIN 关键字SQL RIGHT JOIN 关键字SQL FULL JOIN 关键字

SQL中inner join,outer join和cross join的区别

SQL INNER JOIN 关键字

SQL Inner Join 关键字

sql中的inner join ,left join ,right join

SQL中的JOIN类型解释(CROSS, INNER,OUTER),关键字ON,USING