Oracle SQL -连接语法/关键字



查询Oracle数据库:

如果查询是一个带有连接的选择,语法是否必须包含关键字:

  • 内连接
  • 外连接
  • 左/右外连接

如果没有,那么有什么替代用法/语法?

我问这个问题是因为我正在查看一个SELECT语句,该语句不使用FROM子句中的任何JOIN关键字,但在WHERE子句中包含连接语法,我想知道:

  • 如果select正在执行JOIN
  • 如果是,它查询的是哪种JOIN ?

的例子:

SELECT e.name, e.employeeid, d.sales, d.task, sum(d.hours)
FROM employee e,
       timecard d,
WHERE e.employeeid = d.employeeid and
GROUP BY ...
ORDER BY ...

是的,这是一个(内部)连接,可以重写为

SELECT e.name, e.employeeid, d.sales, d.task, sum(d.hours)
FROM employee e
JOIN timecard d on e.employeeid = d.employeeid
WHERE ...
GROUP BY ...
ORDER BY ...

这个例子等价于INNER JOIN。在Oracle中,左连接的等效(已弃用)语法为

SELECT e.name, e.employeeid, d.sales, d.task, sum(d.hours)
FROM employee e,
       timecard d,
WHERE e.employeeid = d.employeeid(+) and
GROUP BY ...
ORDER BY ...

最新更新