簡體   English   中英

oracle sql無效標識符錯誤

[英]oracle sql invalid identifier error

我正在嘗試在oracle數據庫中運行以下語句:

select nfl_player.first_name, nfl_player.last_name
from nfl_player
where player_id IN 
    (select nfl_player.player_id as pid
        from nfl_player
        where pid=nfl_team_roster.player_id
        and nfl_team_roster.team_id= 4
    );

由於某種原因,運行它時,會收到以下消息:

and nfl_team_roster.team_id= 4
    *
ERROR at line 7:
ORA-00904: "NFL_TEAM_ROSTER"."TEAM_ID": invalid identifier

我已經仔細檢查過,並且我的語法正確(或者至少我相信是這樣)。 該列存在。 我在下面的表格中包含了我的架構。 是什么會給我這個錯誤?

CREATE TABLE NBA_Team_Roster(
roster_ID number primary key,
team_id number,
player_id number unique,
foreign key (team_id) references NBA_Team(team_id),
foreign key (player_id) references NBA_Player(player_id)
);

任何幫助將不勝感激。

您的查詢中未使用nfl_team_roster表。 我認為您在子查詢中放錯了表名

SELECT first_name, 
       last_name 
FROM   nfl_player nf 
WHERE  player_id IN (SELECT ntr.player_id AS pid 
                     FROM   NBA_Team_Roster ntr --Here 
                     WHERE  nf.pid = ntr.player_id 
                            AND ntr.team_id = 4); 

使用Alias而不是完整的表名來引用列,這會使查詢更具可讀性。

您編寫的子查詢中存在錯誤,您在子查詢中放錯了表名,並在聯接條件中使用了別名。

 select np.first_name, np.last_name
from nfl_player np
where np.player_id IN 
    (select r.player_id as pid
        from NBA_Team_Roster r
        where r.team_id= 4);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM