我的数据库教授告诉我们使用:
SELECT A.a1, B.b1 FROM A, B WHERE A.a2 = B.b2;
Run Code Online (Sandbox Code Playgroud)
而不是:
SELECT A.a1, B.b1 FROM A INNER JOIN B ON A.a2 = B.b2;
Run Code Online (Sandbox Code Playgroud)
据推测,Oracle不喜欢JOIN-Syntaxes,因为这些JOIN语法比笛卡尔积的WHERE限制更难优化.
我无法想象为什么会出现这种情况.唯一的性能问题可能是解析器需要更多地解析几个字符.但在我眼里,这一点可以忽略不计.
我发现了这个Stack Overflow问题:
这篇文章在Oracle文档中:https://docs.oracle.com/cd/B19306_01/server.102/b14200/queries006.htm
Oracle建议您使用FROM子句OUTER JOIN语法而不是Oracle join运算符.
有人可以通过链接向我提供Oracle的最新建议.因为她不承认StackOverflow(这里可以回答所有人),10g文档在这里是过时的.
如果我错了,Oracle真的不喜欢JOINS现在比那还好,但是我找不到文章.我只是想知道谁是对的.
非常感谢能帮助我的每个人!