为了账号安全,请及时绑定邮箱和手机立即绑定

内连接与位置

内连接与位置

内连接与位置(在甲骨文中)Select * from Table1 T1  Inner Join Table2 T2 On T1.ID = T2.ID和Select * from Table1 T1, Table2 T2  Where T1.ID = T2.ID?
查看完整描述

3 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

如果查询优化器正确地完成了它的工作,那么这些查询之间应该没有区别。它们只是指定相同预期结果的两种方法。


查看完整回答
反对 回复 2019-07-02
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

我不知道Oracle,但我知道以前的语法在SQLServer中被废弃了,并且最终会消失。在新查询中使用旧语法之前,我将检查Oracle计划如何处理它。

我更喜欢更新的语法,而不是将联接条件与其他需要的条件混合在一起。在较新的语法中,创建连接的内容和应用的其他条件要清楚得多。在这样一个简短的查询中,并不是什么大问题,但是当您有一个更复杂的查询时,它就会变得更加混乱。由于人们学习基本查询,所以我倾向于在复杂查询中需要使用联接语法之前,先学习使用联接语法。

而且我也不太了解Oracle,但我知道即使在SQLServer 2000中,旧样式的左联接的SQLServer版本也存在缺陷,并给出了不一致的结果(有时是左联接,有时是交叉连接),因此不应该使用它。希望Oracle不会遇到同样的问题,但是肯定地,左和右联接很难用旧的语法正确表达。

另外,我的经验(当然,这完全是个人观点,您可能有不同的经验)是,使用ANSII标准联接的开发人员倾向于更好地理解JOIN是什么以及从数据库中获取数据意味着什么。我相信这是因为大多数具有良好数据库理解的人倾向于编写更复杂的查询,在我看来,使用ANSII标准维护这些查询要比使用旧风格容易得多。


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 506 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信