【发布时间】:2016-07-20 06:25:09
【问题描述】:
我有一个关于在Oracle数据库的where子句中使用(+)=的问题;
a. id= b.id(+)
这是否意味着 a.id=b.id 的 b 上的左连接是左连接,对吗?
a.Job_Type(+) = 'Manager'
我不明白他为什么在这里使用(+)=,而不是a.Job_Type = 'Manager',它们是一样的吗?
【问题讨论】:
-
(+)的模糊性是我推荐不使用它的原因。 1) INNER/LEFT/RIGHT 更加明确,2) 它将您的加入标准与过滤标准分开,3) 它更灵活(即尝试使用(+)表示UPPER(x) = UPPER(y)或x LIKE y) -
请参阅this answer 以获取示例说明。不过,第一条评论中的链接可能是最好的重复目标。
-
@Mr.Llama:不仅你不建议使用它。甚至甲骨文也是如此。
标签: sql oracle outer-join