我经常看到“从”2个表和“加入”2个表的例子 . 这就是为什么当我看到以下Oracle SQL语句时,我感到很奇怪:
select a.oid, m.acct, p.cdate
from a, p, m
where a.oid = p.oid(+) and a.uid = m.uid
-
在DBMS中实际发生了什么?
-
什么是等效的MySQL语法?
-
JOIN 只是在where子句中表达某些条件的另一种方式吗?例如a.id = b.id上的左连接b实际上只是在where子句中表达a.id = b.id或a.id而不是(从b中选择b.id)的另一种方式
1 回答
这相当于:
您发布的查询是用旧语法编写的,但与上面的选择完全相同 . 有一个更简单的例子:
也相当于:
两个查询都应该由优化器以相同的方式处理 . 加入顺序也由优化器确定 . 因此,回到原始示例优化器将定义是否首先应用
inner join
然后left join
或相反 .