gpt4 book ai didi

sql - ANSI 和非 ANSI 连接有什么区别,您推荐哪种?

转载 作者:行者123 更新时间:2023-12-01 09:58:51 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Oracle Joins - Comparison between conventional syntax VS ANSI Syntax

(11 个回答)


8 年前关闭。




我访问了许多网站以找到关于哪一个更好的答案,ANSI 或非 ANSI 语法。这两个查询有什么区别?

select a.name,a.empno,b.loc
from tab a, tab b
where a.deptno=b.deptno(+);

和:
select a.name,a.empno,b.loc
from tab a
left outer join tab b on a.deptno=b.deptno;

两种情况下的结果相同。第二个查询也更长。哪一个更好?

假设我们在上面的查询中添加了另一个表 Salgrade,基于我们需要加入它们的条件? ..
任何人都可以假设一张 table 并给我解释

最佳答案

这两种语法通常都可以正常工作,但是如果您尝试添加一个 where 条件,您会发现使用第二个语法更容易理解哪个是连接条件,哪个是 where 子句。

1)

  SELECT a.name,
a.empno,
b.loc
FROM tab a,
tab b
WHERE a.deptno = b.deptno(+)
AND a.empno = 190;

2)
         SELECT a.name,
a.empno,
b.loc
FROM tab a,
LEFT OUTER JOIN tab b
ON a.deptno = b.deptno
WHERE a.empno = 190;

此外,识别外连接要容易得多,不要忘记包含 (+)。总的来说,您可以说这只是一个品味问题,但事实是第二种语法更具可读性且不易出错。

关于sql - ANSI 和非 ANSI 连接有什么区别,您推荐哪种?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19905028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com