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:遵循 Oracle 标准(9i 以后),查询表达式 179 7.5 - 连接表
3) 如果指定了 qualified join 而没有 join type 指定,则 INNER 是隐式的。
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的区别