私たちは3つのデータベースを持っています。Album(アルバム番号またはano、mno(プロデューサーのミュージシャン))、Song(ano(それがアルバム)、sno(この特定の曲に関連付けられている番号))、および(SNO(実行されている曲)を実行し、MNO(実行作家))SQLのエイリアスはこのように動作しますか?
ので、単純化して、私たちは
ALBUM(ANO、MNO)
SONG(ANO、SNOを持っています)
PERFORM(SNO、MNO);
プロデューサー以外の誰かによって演奏された曲があるアルバムのANOを見つけることです。
私のクエリは、この
SELECT ALBUM.ANO AS ALBUM_NUM
FROM ALBUM
WHERE ALBUM.MNO != (
SELECT PERFORM.MNO
FROM PERFORM
WHERE PERFORM.SNO IN (
SELECT SONG.SNO
FROM SONG
WHERE SONG.ANO = ALBUM_NUM
)
);
であると私は、私はこの質問を行うにはどのように他を知らない
WHERE SONG.ANO = ALBUM_NUM
*
ERROR at line 9:
ORA-00904: "ALBUM_NUM": invalid identifier
このエラーが発生します。それで誰も助けることができますか?
EDITは:今、私はこれを試してみた、これは私の新しいエラー
SELECT ALBUM.ANO
FROM ALBUM A
INNER JOIN PERFORM P
ON P.MNO != A.MNO
INNER JOIN SONG S
ON S.ANO = A.ANO
AND S.SNO = P.SNO;
SELECT ALBUM.ANO
*
ERROR at line 1:
ORA-00904: "ALBUM"."ANO": invalid identifier
を私は私の検索を修正しなければならなかったが、私の編集は、働いていた(マイナスsstanのおかげで固定された最初の行にエラー):あなたは 'A'で' ALBUM'を別名、あなたがする必要があるので、 'select'節で' A.ANO'を使います。 – sstan
助けてくれてありがとう! –