【发布时间】:2015-12-14 15:52:18
【问题描述】:
我正在尝试创建以下视图:
CREATE OR REPLACE VIEW AlbumDistribution AS
SELECT Album.Album_ID,
Album.title,
HasTrack.tracked,
FinishedTrack.released_title,
SUBSTR(Album.Album_ID, -1) is_distributed_as
FROM Album A
JOIN HasTrack HT
ON HT.Album_ID = A.Album_ID
JOIN FinishedTrack FT
ON HasTrack.OriginatesFrom = FT.OriginatesFrom
AND HasTrack.tracked = FT.version;
但我收到 ORA-00904 错误:
ERROR at line 6:
ORA-00904: "HASTRACK"."TRACKED": invalid identifier
我觉得这很令人困惑,因为我之前引用了 HasTrack.tracked 并且没有错误。如果我更改语句的顺序,将 HasTrack.OriginatesFrom = FT.OriginatesFrom 放在最后,那么我会得到相同的错误,但 HasTrack.OriginatesFrom 是。
【问题讨论】:
-
使用您在
HasTrack上定义的HT别名,而不是直接使用HasTrack:HT.tracked。 -
如果您为表指定了别名,那么重点是使用该别名而不是前缀上的表名