mai*_*rgs 7 sql database oracle plsql outer-join
我一直在移植oracle选择,我一直在运行很多查询,如下所示:
SELECT e.last_name,
d.department_name
FROM employees e,
departments d
WHERE e.department_id(+) = d.department_id;
Run Code Online (Sandbox Code Playgroud)
...和:
SELECT last_name,
d.department_id
FROM employees e,
departments d
WHERE e.department_id = d.department_id(+);
Run Code Online (Sandbox Code Playgroud)
有没有转换(+)语法的所有变体的指南/教程?什么是语法甚至调用(所以我可以搜索谷歌)?
更好 ..有没有一个工具/脚本可以为我做这个转换(首选免费)?某种优化器?我有大约500个这样的查询到端口..
该标准何时逐步淘汰?任何信息表示赞赏.
OMG*_*ies 22
这(+)
是Oracle特定的ANSI-92 OUTER JOIN前语法,因为ANSI-89语法不提供OUTER JOIN
支持语法.
无论是RIGHT
或LEFT
由哪个表&列参考符号被附加到确定.如果在与FROM
子句中第一个表关联的列旁边指定它- 它是一个RIGHT
连接.否则,这是一个LEFT
加入. 对于需要了解JOIN之间差异的人来说,这是一个很好的参考.
使用ANSI-92语法重写的第一个查询:
SELECT e.lastname,
d.department_name
FROM EMPLOYEES e
RIGHT JOIN DEPARTMENTS d ON d.departmentid = e.departmentid
Run Code Online (Sandbox Code Playgroud)
使用ANSI-92语法重写的第二个查询:
SELECT e.lastname,
d.department_name
FROM EMPLOYEES e
LEFT JOIN DEPARTMENTS d ON d.departmentid = e.departmentid
Run Code Online (Sandbox Code Playgroud)