SELECT A.ename FROM (emp NATURAL JOIN dept) A;这会产生ERROR at line 1: ORA-00933: SQL command not properly ended。
最后,我能够以更精细的方式实现这一点:
SELECT A.ename FROM (SELECT * FROM emp NATURAL JOIN dept) A;这是可行的,但我怀疑一定有一种更简单的方法来做到这一点,那就是不需要嵌套查询。是真地吗?
发布于 2015-10-12 22:02:21
@Robert Merkwürdigeliebe是对的,使用自然连接是不好的,因为如果您将在两个表中添加具有相同名称和类型的列,则您的连接将以不同于现在的方式工作。
但是,如果您仍然想练习自然连接-您可以为每个表指定别名,但是当您要调用列(在SELECT语句的任何部分中)时-您就不能使用这个别名。因此,实际上您不需要表别名
SELECT d.department_id
FROM employees e NATURAL JOIN departments d;
ORA-25155: column used in NATURAL join cannot have qualifier但
SELECT department_id, last_name
FROM employees e NATURAL JOIN departments d;作品
发布于 2015-10-12 21:48:44
答案很简单:永远不要使用自然连接!
而是显式地定义连接。自然连接会自动为你做事情,因此很容易出错。在编程时,这不是一件好事。
https://stackoverflow.com/questions/33082394
复制相似问题