[英]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.