如何为NATURAL JOIN生成的整个表创建别名?

时间:2015-10-12 13:27:38

标签: oracle alias

ERROR at line 1: ORA-00933: SQL command not properly ended

这会产生SELECT A.ename FROM (SELECT * FROM emp NATURAL JOIN dept) A;

最后,我能够以更精细的方式实现这一目标:

{{1}}

这样可行,但我怀疑必须有一种更简单的方法来执行此操作,这不需要嵌套查询。是这样吗?

2 个答案:

答案 0 :(得分:1)

@RobertMerkwürdigeliebe对,使用NATURAL JOIN并不好,因为如果你要在两个表中添加具有相同名称和类型的列,你的连接将以不同的方式工作。

但是如果您仍想在NATURAL JOIN中练习 - 您可以为每个表提供别名,但是当您调用列时(在SELECT语句的任何部分中) - 您不能使用此别名。所以实际上你不需要表别名

SELECT d.department_id
FROM employees e NATURAL JOIN departments d;

ORA-25155: column used in NATURAL join cannot have qualifier

BUT

SELECT department_id, last_name
FROM employees e NATURAL JOIN departments d;

作品

答案 1 :(得分:0)

简单回答:永远不要使用自然连接!

而是明确定义连接。自然连接为您自动执行操作,因此容易出错。编程时不是一件好事。