维基百科说:
"在实践中,很少使用明确的右外连接,因为它们总是可以用左外连接替换,并且不提供额外的功能."
任何人都可以提供他们更喜欢使用正确表示法的情况,为什么?我想不出使用它的理由.对我来说,它永远不会让事情更清楚.
编辑:我是甲骨文老将制作新年决议,以便从(+)语法中脱离自己.我想做得对
RIGHT JOIN类似于LEFT JOIN.为了使代码可以跨数据库移植,建议您使用LEFT JOIN而不是RIGHT JOIN.
有人能够对此有所了解吗?这让我觉得可能是过去时代的遗留物 - 正如文档中的意思是"保持代码与早期版本的MySQL反向兼容......"
是否存在不支持的现代RDBMS RIGHT JOIN?我得到的RIGHT JOIN是语法糖LEFT JOIN,任何RIGHT JOIN都可以表示为a LEFT JOIN,但有时候如果你在那个方向写一个查询,可读性会受到影响.
这个建议仍然现代有效吗?是否有令人信服的理由避免RIGHT JOIN?
SELECT * FROM TableA
INNER JOIN TableB
ON TableA.name = TableB.name
SELECT * FROM TableA, TableB
where TableA.name = TableB.name
Run Code Online (Sandbox Code Playgroud)
哪种方式首选,为什么?使用像JOIN这样的关键字时会有任何性能差异吗?
谢谢
第5行和第11行的括号是什么?
1 SELECT
2 s.name, s.ShirtDescription, c.Color,
3 z.Size, i.AvailableQTY, i.UnitPrice
4 FROM
5 (
6 test.ShirtInventory i
7 join test.Colors c ON
8 i.ColorID = c.id
9 join test.Shirts s ON
10 i.ShirtID = s.ID
11 )
12 JOIN test.Sizes z ON
13 i.SizeID = z.ID
14 WHERE .....
Run Code Online (Sandbox Code Playgroud)
我从未在FROM子句中看到过以这种方式使用的括号.这不是一个子查询,它没有确定表和连接的范围.您可以看到我在括号外引用i.SizeID的位置.当我第一次看到它时,我认为这可能是一种"提示"SQL Server如何获取数据的方法,但是当你删除parens时,执行计划中没有任何变化.
期待您的回复.编辑:错误的行