为什么SQLANSI-92标准没有比ANSI-89更好地采用呢?在我工作过的每一家公司,我都发现人们仍然在用ANSI-89标准编写SQL查询:select a.id, b.id, b.address_1from person a, address bwhere a.id = b.id而不是ANSI-92标准:select a.id, b.id, b.address_1from person ainner join address bon a.id = b.id对于这样一个非常简单的查询,可读性没有太大的差别,但是对于大型查询,我发现将我的联接条件分组并列出表会使我们更容易发现JOIN中可能出现的问题,让我们在WHERE子句中保留所有筛选。更不用说,我觉得外部联接比Oracle中的(+)语法直观得多。当我试图向人们传教ANSI-92时,使用ANSI-92比ANSI-89有什么具体的性能效益吗?我会自己尝试,但是我们这里的Oracle设置不允许我们使用解释计划-不希望人们试图优化他们的代码,对吗?
3 回答
慕桂英546537
TA贡献1848条经验 获得超10个赞
人们这样做是出于习惯 人们比较懒惰,喜欢使用“旧风格”连接,因为它们只需要较少的输入。 初学者常常在sql-92联接语法方面遇到问题。 人们不会仅仅因为有新语法而改用新语法 人们不知道新语法(如果您想称它为)所具有的好处,主要是它使您能够筛选表。 以前
你做一个外部连接,而不是在它之后,当你只有WHERE子句时。
添加回答
举报
0/150
提交
取消