查询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 ...